dポイントプレゼントキャンペーン実施中!

すいません、delphi初心者です。
わかる方いましたら教えてください。

今小数点の計算を行っているのですが、整数以下の小数点の切り捨てのサンプルはよく見るのですが、第一
以降や、第2位以降の切り捨てなども設定できるものでしょうか??

すいません、わかる方いましたらご教授ください!!
宜しくお願いお致します。

A 回答 (2件)

比較的言語を問わずそれを実現する方法としては、こういう手があります。



例:0.015を小数点3桁以降で切り捨てる(0.01となる)場合
1)値を100倍する。0.015*100=1.5
2)四捨五入したければ、ここで0.5を足す。切り捨てるならそのまま次へ
3)結果の小数部を切り捨てる。すると結果は1
4)これを100で割れば、0.01が得られる

この方法の欠点は、浮動小数点実数だと誤差を生ずる恐れがあることです。まあ、あまり厳密なことを言わなければ、これでも問題ないと思いますが。あとPascalだと型の違いにうるさいので、整数型と実数型は型変換せずにいきなり代入するとエラーになるでしょうから、注意が必要ですかね。

この回答への補足

すいません、補足です。

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

やはりこういう遠まわしに処理していくしかないものでしょうか??

補足日時:2010/09/07 13:55
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/09/08 16:53

小数点なんだから、銀行丸めか、非対称丸めで、四捨五入しちゃえばいいのに。


そのための関数はあるけど。

小数点以下の切り捨ては、自作するしかないみたいですねー。
http://www.blackcatlab.com/article.php/Programin …
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/09/08 16:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!