【发布时间】:2016-06-20 18:25:42
【问题描述】:
我需要编写一个函数来比较字符串值“15.0000000000000001”和“15”,我正在使用 MathNet。使用 MathNet.Symbolics.Expression.Real 只接受双精度。当我执行以下操作时
Expression valOne = Expression.Real(Double.Parse("15.0000000000000001"));
Expression valTwo = Expression.Real(Double.Parse("15"));
valOne.Equals(valTwo);
以上计算结果为 true。Double.Parse 15.0000000000000001 返回 15。我知道小数点后的 0 对 double 没有意义,并且有存储限制。
有人可以帮忙吗?
【问题讨论】:
-
在需要 18 位绝对精度的情况下,您正在做什么样的计算或比较?
-
从角度来看 - 有approximately 7.5e18 grains of sand on earth。数错十粒真的有关系吗?
标签: c# .net mathnet-numerics