可能重复:
为什么C#中的浮点运算不精确?
你好.我有以下问题:
43.65+61.11=104.75999999999999
Run Code Online (Sandbox Code Playgroud)
对于十进制是正确的:
(decimal)43.65+(decimal)61.11=104.76
Run Code Online (Sandbox Code Playgroud)
为什么双重结果是错误的?
Stu*_*art 11
这个问题及其答案是关于此的丰富信息 - 在.NET中十进制,浮点数和双精度之间的差异?
报价:
对于"自然精确小数"的值,最好使用小数.这通常适用于人类发明的任何概念:财务价值是最明显的例子,但也有其他概念.例如,考虑给予潜水员或滑冰者的分数.
对于无论如何都无法真正精确测量的更多人工制品的值,浮动/双重更合适.例如,科学数据通常以这种形式表示.在这里,原始值不会以"十进制精度"开头,因此保持"十进制精度"对于预期结果并不重要.浮点二进制点类型比小数点快得多.
| 归档时间: |
|
| 查看次数: |
23266 次 |
| 最近记录: |