文字列値 "15.0000000000000001"と "15"を比較する関数を記述する必要があり、MathNetを使用しています。 MathNet.Symbolics.Expression.Realを使用すると、doubleを受け入れるだけです。私はMathNet実際の倍精度問題
Expression valOne = Expression.Real(Double.Parse("15.0000000000000001"));
Expression valTwo = Expression.Real(Double.Parse("15"));
valOne.Equals(valTwo);
次の操作を行う場合には、上記評価するには、小数点以下が倍増する意味であり、それは、ストレージの制限があります後、私は0のを理解15.0000000000000001リターン15をtrue.Double.Parseします。
誰でもお手伝いできますか?
18桁の絶対精度が必要な場合、どのような計算や比較をしていますか? –
それを見てみると、[地球上に約7.5e18の砂粒があります](http://www.npr.org/sections/krulwich/2012/09/17/161096233)です。あなたが10個の穀物でミスカウントすれば本当に問題になりますか? –