掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Int関数の返り値について (ID:119620)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
浮動小数点演算誤差を避けるには、固定小数点演算を使いましょう。 Text1.Text = CStr(Int(0.1@ * -50@)) Text2.Text = CStr(Int(CDec("0.1") * CDec("-50"))) などであれば、誤差が発生しません。 浮動小数点型の場合、コンパイルモードによって結果が変わる事もあります。 Text1.Text = CStr(Int(0.1 * -50)) ってコードで実行したら、 P-Codeコンパイル時 → 「-6」 最適化無しコンパイル時 → 「-6」 速度最適化コンパイル時 → 「-5」 サイズ最適化コンパイル時 → 「-5」 という結果になりました。 なお、一度変数に入れると(今回の場合は)大丈夫みたい。 Debug.Print TypeName(0.1 * -50) '→ "Double" D = 0.1 * -50 Debug.Print Int(D) '→ "-5" Debug.Print Int(0.1 * -50) '→ "-6" Debug.Print Int(CDbl(0.1 * -50)) '→ "-5"
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.