• ベストアンサー

すいません、delphi初心者です。

すいません、delphi初心者です。 わかる方いましたら教えてください。 今小数点の計算を行っているのですが、整数以下の小数点の切り捨てのサンプルはよく見るのですが、第一 以降や、第2位以降の切り捨てなども設定できるものでしょうか?? すいません、わかる方いましたらご教授ください!! 宜しくお願いお致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

比較的言語を問わずそれを実現する方法としては、こういう手があります。 例:0.015を小数点3桁以降で切り捨てる(0.01となる)場合 1)値を100倍する。0.015*100=1.5 2)四捨五入したければ、ここで0.5を足す。切り捨てるならそのまま次へ 3)結果の小数部を切り捨てる。すると結果は1 4)これを100で割れば、0.01が得られる この方法の欠点は、浮動小数点実数だと誤差を生ずる恐れがあることです。まあ、あまり厳密なことを言わなければ、これでも問題ないと思いますが。あとPascalだと型の違いにうるさいので、整数型と実数型は型変換せずにいきなり代入するとエラーになるでしょうから、注意が必要ですかね。

s02152170
質問者

お礼

返信ありがとうございました!!

s02152170
質問者

補足

すいません、補足です。 今行っている記載しています処理はsiremono2496さんが仰っている処理に近いのですが、 例えば aaa:Currency に11.11を入れて aaa*10 をして aaaを一度整数にしてしまい111が残ります。 そこにaaa/10で11.1を残すというのを記載しているのですが、 これでいいのかと疑問が残り質問しました。 やはりこういう遠まわしに処理していくしかないものでしょうか??

その他の回答 (1)

回答No.2

小数点なんだから、銀行丸めか、非対称丸めで、四捨五入しちゃえばいいのに。 そのための関数はあるけど。 小数点以下の切り捨ては、自作するしかないみたいですねー。 http://www.blackcatlab.com/article.php/ProgramingFAQ_del0044

s02152170
質問者

お礼

返信ありがとうございました!!

関連するQ&A