C言語で小数第4位を四捨五入して第3位まで丸める関数を作っています。
以下のような関数を作ったのですが、小数点以下が0になってしまっています。
どこが間違っているでしょうか?
double rounding(double num) { double ret = (double)((short)(num * 1000 + 0.05) / 1000); printf("num = %.4f, ret = %.4f\n", num, ret); return ret; }
出力結果はこんな感じです。
num = 0.0000, ret = 0.0000 num = 0.0100, ret = 0.0000 num = 0.0200, ret = 0.0000 num = 0.0300, ret = 0.0000 num = 0.0400, ret = 0.0000 num = 0.0500, ret = 0.0000 num = 0.0600, ret = 0.0000 num = 0.0700, ret = 0.0000 num = 0.0800, ret = 0.0000 num = 0.0900, ret = 0.0000 num = 0.1000, ret = 0.0000 num = 0.1100, ret = 0.0000 num = 0.1200, ret = 0.0000 num = 0.1300, ret = 0.0000 num = 0.1400, ret = 0.0000 num = 0.1500, ret = 0.0000 num = 0.1600, ret = 0.0000 num = 0.1700, ret = 0.0000 num = 0.1800, ret = 0.0000 num = 0.1900, ret = 0.0000 num = 0.2000, ret = 0.0000 num = 0.2100, ret = 0.0000 num = 0.2200, ret = 0.0000 num = 0.2300, ret = 0.0000 num = 0.2400, ret = 0.0000 num = 0.2500, ret = 0.0000 num = 0.2600, ret = 0.0000 num = 0.2700, ret = 0.0000 num = 0.2800, ret = 0.0000 num = 0.2900, ret = 0.0000 num = 0.3000, ret = 0.0000 num = 0.3100, ret = 0.0000 num = 0.3200, ret = 0.0000 num = 0.3300, ret = 0.0000 num = 0.3400, ret = 0.0000 num = 0.3500, ret = 0.0000 num = 0.3600, ret = 0.0000

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 02:51
2020/10/01 03:03
2020/10/01 03:07