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

Mat*_*att 16 c rounding

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

例如,如果数字是 4.48

它会显示出来 4.4

%.1f 轮到 4.5

小智 11

你可以(ab)使用整数除法截断而不是舍入的事实:

float original = 4.48;

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

float truncated = tmp / 10.0; // 4.4
Run Code Online (Sandbox Code Playgroud)

  • 这个新的浮点除法是否会引入舍入误差? (3认同)

Vau*_*ato 5

这是一个简单的方法:

printf("%.1f",trunc(x*10.0)/10.0);
Run Code Online (Sandbox Code Playgroud)