trunc, truncf, truncl
Определяют ближайшего целое число, которое меньше или равно заданному значению с плавающей запятой.
Синтаксис
Параметры
x
Значение для усечения.
Возвращаемое значение
В случае успеха возвращает целое значение x, округленное в сторону нуля.
В случае неудачи может возвращать одно из следующих значений:
| Проблема | Возвращает |
|---|---|
| x = ± бесконечности | x |
| x = ± 0 | x |
| x = NaN | не число |
Сообщает об ошибках, как указано в _matherr.
Remarks
Поскольку C++ допускает перегрузку, можно вызывать перегрузки TRUNC , которые принимают и возвращают float типы и long double . В программе на языке C, если вы не используете < макрос tgmath. h > для вызова этой функции, TRUNC всегда принимает и возвращает double .
При использовании < макроса tgmath. h > trunc() тип аргумента определяет, какая версия функции выбрана. Подробные сведения см. в разделе Type-Generic Math .
Поскольку наибольшими значениями с плавающей запятой являются целые числа, эта функция не будет переполняться сама по себе. Тем не менее можно вызвать переполнение этой функции, возвращая значение в целочисленный тип.
Можно также округлять в меньшую сторону, выполняя неявное преобразование из типа с плавающей запятой в целочисленный тип; однако это можно делать только со значениями, которые могут храниться в целевом типе.
Функция trunc() в C++
Функция trunc() в C ++ округляет аргумент до нуля и возвращает ближайшее целое значение, которое по величине не превышает аргумент.
прототип trunc() [в соответствии со стандартом C ++ 11]
Функция trunc() принимает единственный аргумент и возвращает значение типа double, float или long double. Эта функция определена в заголовочном файле <cmath>.
Параметры
Принимает единственный аргумент, значение trunc которого должно быть вычислено.
Возвращаемое значение
Округляет x до нуля и возвращает ближайшее целое значение, которое по величине не превышает x.
Просто функция trunc() обрезает значение после десятичной дроби и возвращает только целую часть.
Как trunc() работает в C ++?
Пример для целочисленных типов
Для целых значений применение функции trunc возвращает то же значение, что и результат. Поэтому на практике он обычно не используется для целочисленных значений.
trunc (), truncf (), truncl () на языке Си
Все три функции используются для удаления цифр после десятичной точки и возврата измененного десятичного числа.
trunc (): усекает двойное значение после десятичной точки и дает целую часть в качестве результата. Возвращаемое значение и аргументы имеют тип double.
Syntax :
double trunc(double x);Parameters:
x :It takes a double value as an input and then truncates the values after the decimal point.Return Value :
It returns a double value whose values after the decimal point is 0 only.
// C программа для демонстрации
// trunc () функция
#include <stdio.h>
// библиотека, содержащая функцию усечения
#include <math.h>
// используя функцию trunc, которая возвращает
// Усеченное значение ввода
double x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
printf ( » Truncated value is %lf \n» , trunc(x1) );
printf ( » Truncated value is %lf \n» , trunc(x2) );
// Для отрицательных значений
printf ( » Truncated value is %lf \n» , trunc(x3) );
printf ( » Truncated value is %lf \n» , trunc(x4) );
truncf (): он работает так же, как trunc, с той разницей, что он используется для float вместо double. Принимает значение с плавающей запятой, удаляет цифры после десятичной точки и возвращает измененное значение с плавающей запятой.
Syntax :
float truncf(float x);Parameters:
x :It takes a floating point value as an input and then truncates the values after the decimal point.Return Value :
It returns a float whose values after the decimal point is 0 only.
// C программа для демонстрации функции truncf ()
#include <stdio.h>
#include <math.h>
float x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
// используя функцию truncf, которая возвращает
// Усеченное значение ввода
printf ( » Truncated value is %f \n» , truncf(x1) );
printf ( » Truncated value is %f \n» , truncf(x2) );
// Для отрицательных значений
printf ( » Truncated value is %f \n» , truncf(x3) );
printf ( » Truncated value is %f \n» , truncf(x4) );
truncl (): это работает аналогично для long double и по функциональности аналогично trunc () и truncf ()
Syntax :
long double truncl (long double x);Parameters:
x :It takes a long double value as an input and then truncates the values after the decimal point.Return Value :
It returns a decimal value whose values after the decimal point is 0 only.
В случае положительных значений:
// C программа для демонстрации функции truncl ()
#include <stdio.h>
#include <math.h>
long double x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
// используя функцию truncf, которая возвращает
// Усеченное значение ввода
printf ( » Truncated value is %Lf \n» , truncl(x1) );
printf ( » Truncated value is %Lf \n» , truncl(x2) );
// Для отрицательных значений
printf ( » Truncated value is %Lf \n» , truncl(x3) );
printf ( » Truncated value is %Lf \n» , truncl(x4) );
Мы можем использовать функцию trunc () всякий раз, когда нам нужно вычислить целочисленную часть из двойного типа данных. Преимущество этой функции заключается в том, что независимо от того, каким десятичным значением может быть целая часть, она остается неизменной. В функциях ceil, floor или round целочисленное значение изменяется, а в функции усечения — нет.