web-dev-qa-db-ja.com

Cで丸めずに小数を切り捨てる方法

丸めずにCで小数点以下を切り捨てるにはどうすればよいですか?

たとえば、番号が4.48の場合

4.4と表示されます

%.1f4.5に丸められます

16
Matt

整数除算が切り捨てられて丸められないという事実を(ab)使用できます。

float original = 4.48;

int tmp = original * 10; // 44.8 truncated to 44

float truncated = tmp / 10.0; // 4.4
12
user529758

ここに簡単な方法があります:

printf("%.1f",trunc(x*10.0)/10.0);
5
Vaughn Cato

コンパイラがC99をサポートしている場合は、 trunc() などを使用できるはずです。

float f = 4.56f;
f = truncf(f * 10.0) / 10.0;
3
millimoose

これはうまくいくはずです

double d = 4.48;
d *= 10.;
int i = d;
d = (double) i / 10.; 
1
rpsml
float myval = 4.48;
float tr = ((int)(myval*10)) / 10.0;
0
doron