Рассмотрим это довольно простое уравнение:
3.5 + 2.5
Что вы ожидаете? 6
, да? Давайте попробуем этот код
write(3.5 + 2.5);
К сожалению, это число с плавающей запятой, поэтому оно будет давать число, представленное научным способом:
6.00000000000E+00
или 6,0000000000 x 100 или 6 x 10o. Как бы то ни было, вас волнует только 6, кому нужно это странное бесполезное длинное число? Итак, идея состоит в том, чтобы отсечь десятичную часть и вывести в консоль только целую часть, что можно сделать с помощью этой строки кода:
write(3.5 + 2.5 : 0 : 0);
Хорошо, теперь он выводит красивое число, как и ожидалось.
6
Вроде бы проблема решена, а вы говорите, что:
Я суммирую некоторые числа
Пример: 2,3 + 3,4+ 3,3 = 9
Ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо?! Здесь возникает проблема: как, по-вашему, должно получиться это уравнение?
3.6 + 2.5
Должно быть 6.1
, верно? Давайте попробуем это с отработанной строкой кода:
write(3.6 + 2.5 : 0 : 0);
А выход такой...
6
Неожиданно, правда? Итак, как насчет округления до нескольких знаков после запятой, например 1
?
write(3.5 + 2.5 : 0 : 1);
write(3.6 + 2.5 : 0 : 1);
Затем 3.5 + 2.5 = 6.0
и 3.6 + 2.5 = 6.1
. Но 6.0
может показаться довольно длинным, так как же заставить его выводить 6
для 6.0 и 6.1
для 6.1?
На самом деле, вы не можете заставить программу автоматически определять, содержит ли реальная переменная целочисленное значение, потому что способ хранения реальной переменной полностью отличается от целочисленной переменной (насколько они отличаются, обратитесь в Google; но вы можете это сделать вручную, создав функцию для выполнения этой работы).
Итак, мое решение состоит в том, чтобы упростить вывод, округлив вывод до нескольких знаков после запятой, и все.
person
JamieNguyen
schedule
22.11.2017