0

助けてください。like double を使用すると、計算が間違ってしまうという問題があります。たとえば、次のコードを使用します。

double a = 2.01;
double b = 1.01;
double c = 100*(a - (int)a);
double d = 100*(b-(int)b);

私のログには、c = 1.0000001 および d = 0.99999987 が表示されます。計算がより正確な結果、つまり 0.01 になるようにするにはどうすればよいですか? 助けてくれてありがとう。

4

4 に答える 4

0

Math.round(num)int キャストの代わりに使用します。

于 2013-04-20T14:10:47.207 に答える
0

BigDecimalで計算できます。

于 2013-04-20T14:12:47.380 に答える
0

ええと、コンピューターは私たちのように数字を考えたり保存したりしません。コンピューターに浮動小数点数を格納してアクセスするには、いくつかの方法があります。これは数値解析と呼ばれます。基本的に、浮動小数点数がどのように近似されるか。

https://en.wikipedia.org/wiki/Numerical_analysis

于 2013-04-20T14:21:56.513 に答える