Ответ 1
Вы можете (ab) использовать тот факт, что целочисленное деление усекает и не округляет:
float original = 4.48;
int tmp = original * 10; // 44.8 truncated to 44
float truncated = tmp / 10.0; // 4.4
Как отрезать десятичные знаки в 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);
Это должно работать
double d = 4.48;
d *= 10.;
int i = d;
d = (double) i / 10.;
Если ваш компилятор поддерживает C99, вы можете использовать trunc()
и друзей:
float f = 4.56f;
f = truncf(f * 10.0) / 10.0;
float myval = 4.48;
float tr = ((int)(myval*10)) / 10.0;