我知道由于存储浮点数的方式,有些值无法准确表示。 (见Why Are Floating Point Numbers Inaccurate?)
话虽如此,在.NET / C#中,在精度方面有哪些选择或保证? https://msdn.microsoft.com/en-us/library/b1e65aza.aspx?f=255&MSPPError=-2147217396指的是"近似"范围。为什么在这种背景下需要近似值?
最终,我希望存储以下值:
x.xxxxxxxx
其中值始终为正。这似乎不是一个非常精确的数字,但我想确定上面所有可能的数字组合都是耐用的。"
修改
为了澄清我想要的精确水平,我希望小数点后面有八位数字,左边是一位数字。
答案 0 :(得分:4)
答案 1 :(得分:1)
在精确度方面有哪些选择或保证
基于doc,Wikipedia float的精度为7位有效十进制数字
类似于1234567或1.234567或0.0000001234567
为什么在这种情况下需要近似值
因为它不准确。 IEEE 754浮点值为(2 - 2-23)×2127≈3.402823×10 ^ 38
虽然您可能会得到一个像3.4028239999×10 ^ 38这样的数字,但最后5位数字(99999)不可信任