c# 浮点数除法精度问题
在程序中处理单位转换时发现,浮点数除法会有精度损失,如下所示,除以 1000.0 和乘以 0.001有不同的结果:
Console.WriteLine(0.59 / 1000.0); // 结果 0.0005899999999999999
Console.WriteLine(0.59 * 0.001); // 结果 0.00059
但是具体的是使用乘法还是除法 和具体的应用场景有关系,可以参见如下文章:
[https://www.soa.org/news-and-publications/newsletters/compact/2014/may/com-2014-iss51/losing-my-precision-tips-for-handling-tricky-floating-point-arithmetic/]