c# - 我什么时候会遇到C#中Double类型的问题(比特币的小数点后8位)?

标签 c# floating-point double floating-accuracy bitcoin

我记得阅读过有关某些数学运算和类型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/

相关文章:

c# - MVC 应用程序在 IIS Express 中运行良好,但在本地 IIS Web 服务器中运行不正常

c++ - 如何在 std::cout 中既不以科学形式也不以定点表示法输出 float ?

c++ - 如何在 C++ 中将十进制转换为 IEEE 754 半精度格式?

c# - float C#

c# - 为什么我不能在 C# 中将 1.2 值分配给 float 变量?我在 C 和 C++ 中做了同样的事情,并且成功了

c - 如何将大行的位换行,使其不再是一大行?

c# - 查询获取表列表和列数

c# - 在动态创建的事件处理程序中访问动态创建的控件(文本框)

c# - CompleteMultipartUploadResponse 中的 EntityTooSmall

Java 好奇号 : Using a Float or Double for Costs in a Class