![]() |
1
35
浮动不精确,可能会导致累积舍入误差。小数是财务信息的最佳格式,必须精确。 |
![]() |
2
15
价格是十进制值,当涉及到舍入、文字等时,对它们的计算应该表现为十进制分数。 这正是十进制类型所做的。 浮点数存储为二进制分数,它们确实 不 表现得像小数-他们的行为往往不是人们过去对十进制数学所期望的。读 The Floating-Point Guide 详细解释。 对于money值,永远不要使用二进制浮点类型-尤其是当您有一个非常好的十进制类型可用时! |
![]() |
3
9
对于财务计算,使用小数 根据IEEE754,浮点数总是二进制的,只有新的标准IEEE754R定义了十进制格式。许多分数二进制部分永远不能等于精确的十进制表示。任何二进制数都可以写成m/2^n(m,n个正整数),任何十进制数都可以写成m/(2^n*5^n)。由于双星缺少素数因子5,所以所有的二进制数都可以用小数精确表示,反之亦然。
因此,对于财务计算,使用十进制而不是浮点 |
![]() |
4
1
当我们将一个数字存储在浮点中时,我们不保存确切的数字,这是一个近似值。整数部分获得优先级,小数部分与类型大小一样接近。所以,如果你有计算需要精确的结果,使用十进制。 |
![]() |
5
0
请使用bigdecimal,因为它是最好的价格,因为硬币是正确的四舍五入到美元。 Joshua Bloch建议使用BigDecimal。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 6 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 6 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 6 月前 |