我记得读过有关某些数学运算和 type 的问题double
,但我忘记了它们何时会发生,或者我需要如何处理它们。
“比特币”是一个小数点后 8 位的浮点数。我假设我使用它们键入double
它,而不是任何其他类型(十进制等)。它是否正确?
在编写、调试和测试使用 8 个小数点的应用程序时,我还应该考虑哪些其他问题?
我记得读过有关某些数学运算和 type 的问题double
,但我忘记了它们何时会发生,或者我需要如何处理它们。
“比特币”是一个小数点后 8 位的浮点数。我假设我使用它们键入double
它,而不是任何其他类型(十进制等)。它是否正确?
在编写、调试和测试使用 8 个小数点的应用程序时,我还应该考虑哪些其他问题?
如果你用钱做任何事情,你应该使用decimal
. 根据数字的大小,您将在小数点后 8 位之前遇到准确性问题。
由于有固定数量的空间(有效数字的数量)float
可以更准确地表示 -1 到 +1 范围内的数字,而不是 9,000 到 10,000 范围内的数字(比如说)。
浮点数只有 7 位精度,这意味着它不能表示小数点后 8 位的数字。
Double 具有 15-16 位的精度,因此更准确,但对于货币计算仍然不够准确 - 特别是对于较大的值。
如果他们称它为a,float
那么它会产生误导。它们可能意味着“浮点类型”,float
它只是一种。
如果您担心小数位数和准确性,特别是在处理货币时,您应该使用decimal
notfloat
或double
.