如何在没有舍入C的情况下关闭十进制
如何在不舍入的情况下切断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()
和friends:
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;