如何在没有舍入C的情况下关闭十进制

如何在不舍入的情况下切断C中的小数位?

例如,如果数字是4.48

它只会显示4.4

%.1f4.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;