#c
#c
Вопрос:
Я объявляю переменную ‘result’ как значение с плавающей запятой И инициализирую значение как result = 4/3, На выходе я получаю 1.000000 Как я могу заставить ее выдавать мне все значения десятичных знаков, а не только нулевые
Комментарии:
1. Где находится код?
Ответ №1:
4/3
равно 1. Оба аргумента этого выражения являются целыми числами. Затем вы присваиваете целое число 1 a float
. Это дает вам 1.0f
, да.
Вам нужно было бы написать 4.0f/3.0f
так, чтобы результат был 1.333f
— это деление с плавающей запятой.
Кстати, C обычно использует «двоичные разряды», а не десятичные разряды внутри. Вы можете увидеть некоторые эффекты округления, которые были бы нелогичны в десятичной арифметике.
Ответ №2:
4
и 3
считаются целыми числами, поэтому компилятор использует целочисленное деление для вычисления 4/3
.
Вы должны определить результат как float result = 4.0f/3.0f;