丸めずにCで小数点以下を切り捨てるにはどうすればよいですか?
たとえば、番号が4.48
の場合
4.4
と表示されます
%.1f
は4.5
に丸められます
整数除算が切り捨てられて丸められないという事実を(ab)使用できます。
float original = 4.48;
int tmp = original * 10; // 44.8 truncated to 44
float truncated = tmp / 10.0; // 4.4
ここに簡単な方法があります:
printf("%.1f",trunc(x*10.0)/10.0);
コンパイラがC99をサポートしている場合は、 trunc()
などを使用できるはずです。
float f = 4.56f;
f = truncf(f * 10.0) / 10.0;
これはうまくいくはずです
double d = 4.48;
d *= 10.;
int i = d;
d = (double) i / 10.;
float myval = 4.48;
float tr = ((int)(myval*10)) / 10.0;