0

NCalc で丸めの問題が発生しました。私の問題は非常に単純です。0.5 と 0.5555 を足すだけです。期待される結果は 1.0555 です。これは、3 つの分数に丸める必要があります。1.056

float と double は、5 桁の数値で精度の問題を引き起こすことはありません。ただし、NCalc は行います。

Expression ex = new Expression("0.5 + 0.5555");
object result = ex.Evaluate();

result  1.0554999999999999  object {double}

これにより、切り上げではなく切り捨てられます。エラーが0.0000000~~~~1であっても。どうすればこれを解決できるか、誰にもアイデアがありますか?

4

3 に答える 3

1

でパラメーターを渡すことにより、NCalc に小数を使用させるm:

 Expression ex = new Expression("[a1] + [a2]");
 ex.Parameters["a1"] = 0.5m;
 ex.Parameters["a2"] = 0.555m;
 object result = ex.Evaluate();
于 2015-08-07T09:06:47.507 に答える