• ベストアンサー

小数点の切捨て

ご教授お願いいたします。 小数点の切捨てで、下記のように書いたのですが、あっていますでしょうか? double a=32.1111; long int l; double res; l = (int)(a * 10); res = l / 10; Cは、久しぶりなので忘れてしまいました。 小数点の切捨て・切り上げは、自力でやるんでしたよね? それとも、標準関数でもありましたでしょうか?

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

  • ベストアンサー
  • thatsthat
  • ベストアンサー率55% (15/27)
回答No.4

欲しいのが32ならば、 皆様のおっしゃる通り(int)だけで良いですね。 ただ、resがdoubleですし・・・ もし、欲しいのが32.1なのだとしたら、  res=l/10.0 としないと、やはり32.0になってしまいます。

besei21
質問者

お礼

>もし、欲しいのが32.1なのだとしたら、 > res=l/10.0 >としないと、やはり32.0になってしまいます。 おお、そうでしたか? 10.0 としないと駄目なのですね。 ありがとうございます。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

実数から整数へのキャストだと「0 への丸め」になります. 一方 floor を使うと「-∞ への丸め」です. つまり (int)-1.5 は -1, floor(-1.5) は -2.0 となります. 整数に丸める関数は他にも ceil とか rint とか nearbyint なんてのがあります.

besei21
質問者

お礼

ありがとうございます。 参考になりました。

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.3

<math.h>で定義されてる floor()を使う手もあるかも知れません。

besei21
質問者

お礼

ありがとうございます。 すぐ、見てみます。

  • BearCave
  • ベストアンサー率20% (189/909)
回答No.2

doubleからintにキャストするだけで自動的に小数点以下は切り捨てされますよ。 double a = 32.1111; long int l = (int)a; // この時点で少数切捨て double res = (double)l;

besei21
質問者

お礼

ありがとうございました。 キャストをつけておくのが、無難なようですね。

  • masaota56
  • ベストアンサー率41% (58/139)
回答No.1

int型にキャストすることでいけたと思います。 double a = 3.14; int b; b = (int)a;

besei21
質問者

お礼

ありがとうございました。

関連するQ&A

  • 関数 小数点切り捨て

    源泉所得税の計算で、小数点以下切捨てが必要になります。 以下、自動的に切り上げとなってしまいます。 A1 15000 A2 A1*0.1021 結果が1,531.5で、切り上げ1532となってしまいます。 切り捨てで1531にするにはどうしたら良いでしょうか?

  • 小数点 第n位 を切り上げ,切り捨て

    実数 Y を小数点第n位で (1)切り上げ (2)切り捨て をしたいのですが、どのようにすれば良いのでしょうか

  • エクセルで小数点以下切捨てについて

    エクセルでA1に105と入力し A2にA1の90%の値は94.5になりますが、 小数点以下を切り捨てにする場合どうすればいいのでしょうか? 切り上げの方法も一緒に教えて頂くとありがたいです。

  • .NET 小数点以下の切り捨てについて

    小数点以下を切り捨てにしたいのですが 割り切れる場合だけ数値が思うようになりません 3850/1.1は3500になるはずですが以下のコードではre=3499になります double a = 3850; double b = 1.1; String^ re = Math::Floor(a/b).ToString(); 結果を3500にするにはどのような切り捨て処理をすれば良いのでしょうか?

  • 小数点切捨て

    =ROUNDDOWN(AI5,-3)*0.109/5の関数があるのですが、小数点以下を切捨てにしたいので教えてください。 AI5のセルには896,958の数字がありこれで計算すると19,533になってしまいますので、19,532にしたいので、よろしくお願いいたします。

  • ファイルメーカーで小数点以下の切り上げ

    ファイルメーカーで小数点以下の切り上げをするに、どのような関数を使えばよろしいでしょうか? 四捨五入と切り捨ては標準であるのですが、切り上げが見当たらず、またどのように計算を組めばよいか分からず困っています。 わずかでも小数点以下の端数が発生した場合に、整数に切り上げる処理をしたいと思っています。(例としては10.001→11) ファイルメーカーの使用バージョンは9です。

  • 小数点の切り上げ切り下げについて(助けてください)

    とある表を作成しています。 少し説明がややこいんですが、 (1)表の合計に(*0.03*1.05) (2)表の合計から(1)の答えを引き525をまた引き、  その月によってかわる金額を引いたり足したりする(A)。 以上の合計を小数点切捨てにしたい(3)・・・。といった具合です。 が、エクセルは切り上げになりますよね?(1)の時点で切り上げて、最終的の(3)での切り上げになるので、誤差が出てくる形になります。(当社の仕事上) INT関数で修正しましたが、なんせ(A)があるので、パソコンの入力ぐらいしか出来ない社員には関数の修正が出来ないのです。そので、計算式とか、設定などで、素人にも入力だけですむやり方はありませんでしょうか? 分かりにくかったらすみません。補足させていただきます。宜しくお願いいたします。

  • excel関数で四捨五入以外の切り捨て、切り上げ

    excelの関数で四捨五入以外の切り捨て切り上げはどうすればいいでしょうか。 小数点以下を切り上げ・切り捨てしたいのですが、 .5までは切り捨てにしたいのです。.51だと切り上げ。 ROUNDだと.5から切り上げになりますよね。 よろしくお願いいたします。

  • 計算と小数点の切り捨てを同時にする方法

    小数点を切り捨てるため、 TRANC関数を使っているのですが、 下記の記述方法では、小数点が切り捨てられません。 =TRUNC((C4+C5)*0.13) ちなみにこちらは切り捨てが可能なようです。 =TRUNC(C4*0.13) TRUNCの後で計算できないという訳ではなさそうなので、 なんとか一つのセルにまとめたいと思っているのですが、 可能なのでしょうか。

  • 「.50」は切り捨て、「.51」は切り上げにしたい

    エクセルです。 小数点以下「.50」は切り捨て、「.51」は切り上げにしたいのです。 50捨51入というようです。 例 1.50→1 1.51→2 IFかなと思ったのですが、わかりません。 四捨五入ではなく、小数点以下を判断して 切捨て、切り上げはできるのでしょうか?

専門家に質問してみよう