• ベストアンサー

すいません、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

  • delphi6超初心者ですm(_ _)m

    ウインドウズソフト開発超初心者ですm(_ _)m システム手帳のようなものを作ってみたいとdelphi6をダウンロードしました。 まったく使い方がわからないので何か本で勉強しようと思ってますが、やりもって勉強できるような参考書はないでしょうか? イメージ図が多く乗った本ってありますか? またdelphiでなくこの言語(ソフト)で作った方がいいってものがありましたらご教授願います。 宜しくお願いします。

  • 四捨五入と切り捨て

    平均を出す問題について教えてください。 「答えは、小数点以下を切り捨てにして整数で出す。あらかじめ概数にして計算する」とあった場合、「あらかじめ概数にして」というのは、切り捨てにすればよろしいのでしょうか? それとも、四捨五入でしょうか? 教えてください。

  • Excel2000 小数点について

    小数点以下切捨て整数に切り上げされる設定になっているのを解除する方法を教えてください。お願いします。

  • EXCELの関数について(IF、ROUND)

    エクセルの数値の丸め方について エクセル初心者です。今までの投稿で近い投稿が無かったので、質問させて頂きます。 例として、ある数値が小数第1位まであるとします。 (1)その値が300未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 (2)その値が300以上1000未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 整数第1位の数値が2以下のとき切り捨てる。3以上6以下のとき5とする。7以上のとき切り上げる。 (3)その値が1000以上10000未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 整数第1位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。 このような関数、もしくはVBAの設定を詳細に教えて頂けないでしょうか?よろしくお願いします。

  • Excelの計算表示

    計算表示の結果小数点以下を切り捨てして整数値で表示してその合計をしたいのですが、もとの小数点の結果で表示されます。表示された値で合計を出すにはどうしたらよいのでしょうか?

  • 四捨五入で計算された数字を、整数で返す関数を教えてください。

    エクセルで見積金額をだす時に、小数点以下非表示で計算すれば、100.4+100.9+100.4=301.7 302となります。 関数を使い小数点第1位四捨五入で、これを301にしたいのです。 小数点第一位を四捨五入して整数で返すと言うのでしょうか? (小数以下斬り捨てだと、300になります。INT関数がそうなのでしょうか?) すみません、関数がまだ良く分かりません。間違っていたり説明がまずかったなら、ごめんなさい。

  • EXCELで小数点以下を切り捨てるには どうするのか 教えてください

    EXCELで小数点以下を切り捨てるには どうするのか 教えてください EXCELの初心者です。 税金計算のとき 小数点以下は切捨てなのですが、普通に掛け算をすると 最後の桁が自動的に四捨五入されます。切捨てにするにはどうするのか教えて下さい。 

  • 切捨て関数を使わずに小数第2以下を切り捨てて表示する方法

    SQL文で、切捨て関数を使わずに小数第2以下を切り捨てて表示する方法を教えてください。 23.27%が今23.3%で表示しているので、23.2%と表示したいのです。 サンプルで以下のものはありますが、 3.000 / 8.000 通常の計算式 ( 3.000 * 10 mod 8.000 / 10 ) 小数第2以下を切り捨て ここで10をかけて10で割る意味が分かりません。 さらに結果をパーセンテージで表示した状態で、小数第2以下を切り捨てて表示したいので、 この計算式では無理なのかな・・と思います。 アドバイス頂けると助かります。宜しくお願いします。

  • CとDelphi

    こんにちは。質問があるのですがよろしくお願いします。 今自分は、とあるWindows用のアプリケーションソフトを作ろうと思っているのですが、CかDelphiを使おうと思っています。 どちらの言語もまだ自分は習得していないので、勉強しつつということになるのですが、CとDelphi、どちらを使おうか迷っています。 そこでCとDelphiを比較して、Cの勝っている点劣っている点、Delphiの勝っている点劣っている点を教えて頂きたいのです。 どなたか詳しい方いらっしゃいましたら、ご教授の程よろしくお願いします。

  • Access97 Int関数

    小数点の切り捨てをしたくてクエリーで 以下の計算をしてみました。 =Int([個数]*[単価]) ところが以下の数値で計算させると結果が 50232となると思うのですが50231となってしまいます。 数量:460 単価:109.2 結果:50231(電卓で計算すると50232) 結果が小数点になるときは問題ないようです。 使い方が間違っているのでしょうか。 こういう場合Int関数を使うのが誤りなのでしょうか? だとしたら他に当てはまる関数があるのでしょうか? ちなみにテーブルの定義としては 数量:長整数型(小数点以下桁数0) 単価:単精度浮動小数点型(小数点以下桁数0) となっていますが小数点は表示されています。

専門家に質問してみよう