- ベストアンサー
すいません、delphi初心者です。
すいません、delphi初心者です。 わかる方いましたら教えてください。 今小数点の計算を行っているのですが、整数以下の小数点の切り捨てのサンプルはよく見るのですが、第一 以降や、第2位以降の切り捨てなども設定できるものでしょうか?? すいません、わかる方いましたらご教授ください!! 宜しくお願いお致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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だと型の違いにうるさいので、整数型と実数型は型変換せずにいきなり代入するとエラーになるでしょうから、注意が必要ですかね。
その他の回答 (1)
- jigokuno_sata
- ベストアンサー率33% (3/9)
回答No.2
小数点なんだから、銀行丸めか、非対称丸めで、四捨五入しちゃえばいいのに。 そのための関数はあるけど。 小数点以下の切り捨ては、自作するしかないみたいですねー。 http://www.blackcatlab.com/article.php/ProgramingFAQ_del0044
質問者
お礼
返信ありがとうございました!!
お礼
返信ありがとうございました!!
補足
すいません、補足です。 今行っている記載しています処理はsiremono2496さんが仰っている処理に近いのですが、 例えば aaa:Currency に11.11を入れて aaa*10 をして aaaを一度整数にしてしまい111が残ります。 そこにaaa/10で11.1を残すというのを記載しているのですが、 これでいいのかと疑問が残り質問しました。 やはりこういう遠まわしに処理していくしかないものでしょうか??