我在C#中的计算声明如下:
(-0.0116 * (5.08 - 0.52 * Math.Pow(5.08, 1.3)) * Math.Pow(0.5, 1.1) * (-0.14 * Math.Pow((19000 * 0.5), 0.8)))
当我调试并添加此语句以供观看时,它显示如下截图:
但是当分配给double变量时,结果发生了变化:
如何在不更改任何实现的情况下获取0.89713135944117184
?
答案 0 :(得分:0)
C#中double的最大精度为15或16位。请参阅the reference here。
假设您使用的是.Net 4+,则应使用BigInteger
。 BigInteger
“表示任意大的有符号整数。” See the BigInteger
documentation here
有关使用BigInteger
类进行基于小数的计算的示例实现,请参阅this answer。