1

誰かが私に何が起こっているのか説明できますか?

double dbl = stdtod("9999999999999999", NULL); 

私は値を取得しました:9999999999999998
ではなく:9999999999999999

なぜこれが起こるのか理解できません.MSDNでは、最大倍数が であると指定されている1.7976931348623158E+308ため、オーバーフローになることはありません。

ありがとう

4

1 に答える 1

2

オーバーフローではなく、浮動小数点の動作に関する問題です。オーバーフローが発生するずっと前に、有効桁数が制限されています。これは何度もリンクされていますが、これをチェックしてください

于 2011-04-13T18:59:50.203 に答える