Добавлен PT153
Заметил, что данные функции дают разные ответы при r = 9.9999, например.
function R2IX takes real r returns integer
local integer i = R2I(r)
if r - I2R(i) >= 1. then
return i + 1
endif
return i
endfunction
// Ответ: 9.
function R2IY takes real r returns integer
local integer i = R2I(r)
if r - I2R(i) == 1. then
return i + 1
endif
return i
endfunction
// Ответ: 10.
Почему так происходит? Какие операции сравнения (==, !=, >, <, >=, <=) лучше использовать для типа real?
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
А насчет 4 чисел после запятой - отсюда xgm.guru/p/wc3/w3datatypes
Из строчки "Константно может быть задан в виде числа с точкой (1.2345)"
Отредактирован Clamp
то есть 505/10000 = 0.0505
+ это лишняя нагрузка, кому то покажется что это не нагрузка, но всё равно лишнее
Отредактирован PT153
Давно видел эту статейку на HIVE, думал, что её уже давно кинут сюда)
Там и есть ответы на интересующие меня вопросы.
Вот тут ещё об этом.