Как вырезать десятичную дробь без округления в C Как отрезать десятичные знаки в C без округления? Например, если число 4.48 он просто покажет 4.4 %.1f раундов до 4.5 Спасибо! Ответ 1 Вы можете (ab) использовать тот факт, что целочисленное деление усекает и не округляет: float original = 4.48; int tmp = original * 10; // 44.8 truncated to 44 float truncated = tmp / 10.0; // 4.4 Ответ 2 Вот простой способ: printf("%.1f",trunc(x*10.0)/10.0); Ответ 3 Это должно работать double d = 4.48; d *= 10.; int i = d; d = (double) i / 10.; Ответ 4 Если ваш компилятор поддерживает C99, вы можете использовать trunc() и друзей: float f = 4.56f; f = truncf(f * 10.0) / 10.0; Ответ 5 float myval = 4.48; float tr = ((int)(myval*10)) / 10.0;
Ответ 1 Вы можете (ab) использовать тот факт, что целочисленное деление усекает и не округляет: float original = 4.48; int tmp = original * 10; // 44.8 truncated to 44 float truncated = tmp / 10.0; // 4.4
Ответ 4 Если ваш компилятор поддерживает C99, вы можете использовать trunc() и друзей: float f = 4.56f; f = truncf(f * 10.0) / 10.0;