相关疑难解决方法(0)

在MySQL中存储货币值的最佳数据类型

我想在MySQL数据库中存储许多记录.所有这些都包含货币价值.但我不知道每个数字会插入多少位数.
我必须为此目的使用哪种数据类型?
VARCHARINT(或其他数字数据类型)?

mysql currency sqldatatypes

259
推荐指数
10
解决办法
24万
查看次数

使用Java的PostgreSQL上的Money数据

我正在编写一个挖掘货币兑换数据的Java程序.数据可以有多个十进制数字,例如"0.973047".经过一些研究,我发现BigDecimal是Java的正确数据类型,但我应该为PostgreSQL使用哪种数据类型?

java sql postgresql currency jdbc

13
推荐指数
2
解决办法
1万
查看次数

可以在MySQL中存储小数(22,2)的钱吗?

可以像decimal(22,2)MySQL 一样存储货币价值吗?我正在为虚拟世界编写基于Web的市场和广告网络.

mysql sqldatatypes

7
推荐指数
2
解决办法
1万
查看次数

会计系统-MySQL和PHP精度

我正在用 PHP 和 MySQL 构建一种会计系统。我的数据库包含DECIMAL (11,2)货币列,以及DECIMAL货币操作中使用的所有其他值(例如要应用的百分比)。我以前从未编写过类似的程序,所以我不确定我做的是正确的事情。

我在数据库中使用的精度级别是否正确?

在 PHP 方面:

我是否应该对以后可能存储在数据库中的任何值使用 BC Math 函数?

我还必须使用,小数点和.千位分隔符来格式化货币值。我知道number_format,最近发现money_format,但手册说两者都使用浮子进行操作。

我可以使用number_formatmoney_format作为将要显示的值,或导出到 CSV 或 Excel 的值吗?

php mysql currency floating-accuracy bcmath

5
推荐指数
1
解决办法
1349
查看次数

ResultSet::getBigDecimal 抛出 joda-money 的比例异常

尝试从 MySQL 数据库读取的 BigDecimal 创建 Joda-MoneyMoney对象会引发错误。

这段代码:

PreparedStatement p_stmt = ...;
ResultSet results = ...;
Money amount = Money.of(CurrencyUnit.USD, results.getBigDecimal("amount"));
Run Code Online (Sandbox Code Playgroud)

抛出这个:

java.lang.ArithmeticException: Scale of amount 1.0000 is greater than the scale of the currency USD
    at org.joda.money.Money.of(Money.java:74)
    at core.DB.getMoney(DB.java:4821)
Run Code Online (Sandbox Code Playgroud)

我实际上已经通过添加舍入解决了该错误:

Money amount = Money.of(CurrencyUnit.USD, results.getBigDecimal("amount"), RoundingMode.HALF_UP);
Run Code Online (Sandbox Code Playgroud)

但是,我对这个解决方案持怀疑态度。是最好的吗?

我用来按照这个 SO 答案DECIMAL(19,4)将货币值存储在数据库上。老实说,这有点让我困惑,为什么那里的回答者要求数据库上的小数点后 4 位精度,但我倾向于相信高价值的答案,并且我认为他们知道他们在说什么,并且我会后悔没有遵循他们的要求建议。然而 Joda-Money 不喜欢美国货币的小数点后 4 位精度。也许是国际标准要求小数点后 4 位精度?没有把握..DECIMAL(19,4)

为了使问题简洁:

  1. RoundingMode.HALF_UP解决此错误的理想解决方案吗?
  2. 我应该将 MySQL DB 的精度从 更改为DECIMAL(19,4)DECIMAL(19,2)
  3. 有没有办法改变 Joda-Money …

java mysql jdbc joda-money

5
推荐指数
1
解决办法
3122
查看次数

货币的浮点精度:在MySQL查询,PHP和Javascript中使用“舍入”功能

我正在处理美元金额。在MySQL数据库中,以下字段的费用和费率(百分比)为DECIMAL类型,两位精度。

SELECT ROUND(fee * (1- rate/100))),2 ) as profit
from products
Run Code Online (Sandbox Code Playgroud)

由于查询只是返回值而不是将它们保存在变量中,因此精度问题*是否仍然存在(PHP或JS附带)?如果是这样,最好在PHP或JS中舍入浮点数吗?

*是的,我的意思是保存双精度时出现的精度问题,例如1.5可能会另存为1.49999999

php mysql floating-point precision

5
推荐指数
1
解决办法
522
查看次数

MySQL表类型为钱

可能重复:
货币的最佳数据类型

我的数据库中有一个表格,用于存储产品价格; 列类型设置为DECIMAL(12, 2).但是,每当我添加以下价格时:1,199.00保存它,由于某种原因它会转换为1.00.

或者,如果我添加一个类似的价格12,000.00,它会将其转换为12.我应该使用其他类型的字段还是添加其他值DECIMAL

mysql decimal

4
推荐指数
1
解决办法
1万
查看次数

SQL Server中“货币”的数据类型是什么?

SQL Server中货币值的数据类型是什么。

例如:我要存储$11.23

我可以使用货币类型,并且还会存储$符号吗?

sql-server

3
推荐指数
2
解决办法
3万
查看次数

在 sql server 中使用货币 $ 格式?

我的 sql 数据库中有数据,我645.000需要将其格式化以包含货币符号,例如,$645.000

如何在 SQL 中实现这一点?

sql sql-server formatting currency

-1
推荐指数
1
解决办法
7418
查看次数