Функция, переводящая число из double в short (в случае потери точности выдавать предупреждение) - C (СИ)
Формулировка задачи:
функция переводит число из double в short, при этом в случае потери точности функция должна выдавать предупреждение на экран. Число вводить с клавиатуры. Реализовать алгоритм работы программы внутри тела функции.
Решение задачи: «Функция, переводящая число из double в short (в случае потери точности выдавать предупреждение)»
textual
Листинг программы
short doublt2short(double d) {
short res = (short)d;
long l = (long)d;
if (l != res) {
printf("WARNING\n");
} else {
if ( fabs(d-l) > 1.0e-7 ) {
printf("WARNING");
}
}
return res;
}
Объяснение кода листинга программы
- В функции doublt2short(double d) есть переменная d типа double, которая содержит число, которое нужно перевести в short.
- Сначала число приводится к типу short с помощью явного приведения типов (short res = (short)d;).
- Затем число приводится к типу long с помощью явного приведения типов (long l = (long)d;).
- Переменная l содержит результат преобразования числа d к типу long.
- Сравниваются значения переменных res и l. Если они не равны, то выводится сообщение
WARNINGс помощью функции printf. - Если значения переменных res и l равны, то проверяется разница между числами d и l с помощью функции fabs(d-l). Если эта разница больше 1.0e-7, то выводится сообщение
WARNINGс помощью функции printf. - Функция возвращает значение переменной res.