
仮に double 型 の ある数字を 12.6 とします。
printf関数を使って .0f で表示する時は 小数点を四捨五入されて 、整数地が1繰り上がり13と表示されます。
ここである数字をキャスト演算子を使ってprintfで表示すると小数点を切り捨てられるので12と表示されます。
これはdouble型では 12.6 がはいっていて int型では12がはいっているから起こる現象ですね。
前置きは長く長くなりましたがdouble型で四捨五入される数字を、int型にした時に1繰り上げる簡単な方法はないものでしょうか?
double a = 12.6;
int b = ( int ) a;
if( a - ( double ) b > 0.4444444444 ){
b++;
}
printf( "%d\n" , b );
こういう方法なら一応出来ない事はないですがもっと簡単な方法はありませんか?
後、私は時間が余りないので時間内に回答がなければ返信が来週になります。
申し訳ありません。
答えていただいた方はありがとうございます。
No.6
- 回答日時:
四捨五入というか、まるめというか、目的によって使い分ける必要があります。
(1) 経済学的な分野では、負の値はマイナス方向に四捨五入した方が実感として良いと思います。
例えば、4.51万円の借金、つまりは-4.51万円は四捨五入によって-5万円にした方が-4万円にするよりも実感として良いわけです。
(2) 画像処理のような分野では、見た目が自然になる方が良いわけです。
例えば、x1=4.5とx2=-4.5の距離は実際には4.5-(-4.5)=9.0です。でも四捨五入によってx1=5、x2=-5にしてしまうと、計算上5-(-5)=10になってしまいます。この場合は-4.5は四捨五入によって-4にした方が距離は保たれて見た目に自然な結果になります。つまりこの場合はプラス方向に四捨五入することになります。
従って負の値をプラス、マイナスのどちら方向に四捨五入するかは分野によって使い分ける必要が出てきます。
No.5
- 回答日時:
>if( a - ( double ) b > 0.4444444444 ){
なぜ0.4444444444を使っているのか根拠が不明です。
根本的な解決策になっていません。
No.3
- 回答日時:
double 型のある数字が、
正のときは、+0.5 してから int にキャストする。
負のときは、-0.5 してから int にキャストする。
a += ( a < 0.0 ) ?-0.5 : 0.5;
printf( "%d\n", (int)a );
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
勤務の稼働時間の計算がわかり...
-
駐車場賃料の日割り計算について
-
端数処理における「小数以下」...
-
右ビットシフト
-
COBOLの計算方法
-
経常利益などを申請書に書く場...
-
数字の double 型 を int型...
-
四捨五入できますか?
-
なぜ消費税10%は×1.1なのですか...
-
法人税・消費税修正申告納付の仕訳
-
生産の「時間当たりの出来高」...
-
「消費税は別途」の解釈
-
1個あたりの製産時間を算出した...
-
高速料金を請求する場合の消費...
-
時給制の業務委託時、請求書の...
-
協同組合に支払う会費&賦課金...
-
何が矛盾しているのかわからない
-
アホな質問なのですが、30分を0...
-
決算時の未払消費税の計上につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
雇用保険料の計算式について(E...
-
駐車場賃料の日割り計算について
-
Access 1000以下を切り捨てる関数
-
COBOLの計算方法
-
端数処理における「小数以下」...
-
勤務の稼働時間の計算がわかり...
-
Excel有効数字の丸め方「0捨1入」
-
今投稿して解決したのですが 更...
-
50銭以下切り捨て51銭以上切...
-
数字の下二桁を削除したい
-
負の数の四捨五入の方法
-
切捨てする関数はありますか?
-
「未満と以上」使う範囲。
-
MATLABで小数を整数にするには?
-
切り捨てて百の位までのがい数...
-
ACCESSの切り上げ
-
excel関数で四捨五入以外の切り...
-
3013円の70%offはいくらですか?
-
数字の double 型 を int型...
おすすめ情報