3

http://support.microsoft.com/kb/196652から AsymArith ラウンド メソッドを実装しています。

ここで、Int() 関数で奇妙な問題に遭遇しました。小数部分のみを削除するはずですが、整数部分も変更します。

? 131.415 * 100 + 0.5
 13142 
? Int(131.415 * 100 + 0.5)
 13141 

Int() 関数が式の結果を変更する理由を誰かが説明できますか?

4

2 に答える 2

2

これは、int 関数の内部丸めメカニズムに関連しています。

例を試してください:

print Int(131.415 * 100 + format(0.5, "0.00"))

丸めを自分で明示的に設定すると、期待どおりの結果が得られます。

私はこの記事を参照します:

http://support.microsoft.com/kb/214118

于 2013-10-14T10:36:14.227 に答える