Я хочу поставить номер в левой части точки поплавка в новой переменной из числа с плавающей точкой Примера:числа с плавающей точкой литья с ++
int var1;
float var2;
float x=12.505; // i want the number 12 to put it in "var1" and 0.505 in "var2"
Я хочу поставить номер в левой части точки поплавка в новой переменной из числа с плавающей точкой Примера:числа с плавающей точкой литья с ++
int var1;
float var2;
float x=12.505; // i want the number 12 to put it in "var1" and 0.505 in "var2"
Это очень просто, если вы знаете, что при преобразовании значение с плавающей запятой для целого числа, оно просто обрезает значение с плавающей запятой. Таким образом, вы могли бы просто сделать
var1 = x; // Assign 12 to var1
var2 = x - var1; // Assigns 12.505 - 12 to var2
var1 = x; // var1 is 12
var2 = x - var1; // var2 is 0.505
Обратите внимание, что,
Если преобразование из типа с плавающей точкой к целочисленного типа, значение усекается (дробная часть удаляется). Если результат лежит вне диапазона представляемых значений по типу, преобразование вызывает неопределенное поведение.
Подробнее о Type conversions.
Существуют различные способы.
Для одного пути, искать функцию modf()
в стандартном заголовочном <math.h>
Вы можете бросить поплавок к междунар, используя один из следующих вариантов:
var1 = (int)x;
var1 = static_cast<int>(x);
var1 = int(x);
Все эти опции идентичны. Кроме того, вы можете использовать неявное преобразование, но это может привести к компиляции предупреждений или ошибок в зависимости от настроек компилятора:
var1 = x;
После этого преобразования вам нужно будет вычислить дробную часть:
var2 = x - var1;
Пожалуйста, обратите внимание, что прямое преобразование в междунар отсекает дробную часть, я имею в виду,
(int)(12.505) == 12
(int)(12.499) == 12
(int)(-12.55) == -12
(int)(-12.49) == -12
Если вам нужны какие-то другие способы округления числа, используйте CEIL(), пола() или Rou й(). Эти функции находятся в файле заголовка в пространстве имен std.
Просто используйте функцию автоматического усечения.
float f = 12.93;
int b = f; // 12
float p = f - b // 0.93