Плавающее в целочисленное преобразование
Я хочу взять значение из моего ползунка и, не округляя, обрезать десятичные дроби. Так что, если у меня есть значение с плавающей запятой 10,973. Я хочу, чтобы оно было целым числом 10. Я не использую отрицательные значения, но если значение ползунка находится в диапазоне от 0 до 1, скорее, оно округляется вверх. Как бы я сделал заявление, сделав следующее?
3 ответа
Решение
Вы должны использовать:
f = (int)floorf(x);
floorf
Однако будет округлять до нижнего целого числа, так -2.79
приведет к -3
,
Простое целочисленное приведение будет работать.
int intVal = (int)floatVal;
Простое приведение к целому числу должно сделать:
int i = int(f)
Если f равно 10,973, я буду 10. Если f равно -10,973, я буду -10. Приведение к int просто усекает десятичную часть.