Как запретить программированию на c округлять десятичные разряды в большую сторону

#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;