我记得阅读过有关某些数学运算和类型double
的问题,但我忘记了它们何时会发生,或者我该如何处理。
“比特币”是具有8个小数位的浮点数。我假设我使用它们时键入double
,而不是其他任何类型(十进制等)。它是否正确?
在编写,调试和测试使用8个小数点的应用程序时,我还应该考虑哪些其他问题?
最佳答案
如果您用金钱做任何事,则应该使用decimal
。根据数字的大小,您会在精确到小数点后8位之前遇到精度问题。
由于存在固定数量的空间(有效数字的数量),所以float
可以比9,000至10,000范围内的数字更准确地表示-1至+1范围内的数字(例如)。
Float only has 7 digits of precision这意味着它不能表示小数点后8位的数字。
Double has 15-16 digits of precision更为准确,但对于货币计算仍然不够准确-特别是对于较大的值。
如果他们将其称为float
,则可能会产生误导。它们可能表示“浮点类型”,其中float
只是一个。
关于c# - 我什么时候会遇到C#中Double类型的问题(比特币的小数点后8位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13861707/