log #a
stop_script
16384,4 - возвращает 4
16384,44 - возвращает 44
16384,444 - возвращает 0 //?????
16384,445 - возвращает 445
100000,488 - возвращает 488
100000,489 - возвращает 0 //?????
Проблема как с десятичными, так и сотыми и тысячными долями. Проблемы начинаются с числами выше 16000 (примерно).
//Если использовать строковые переменные, то уже интереснее:
set $a frac(16384,444)
log $a
stop_script
Возвращает 444000000000001 // Что это?
Можно с числами поэкспериментировать.
Код
log clear
set linedelay 0
for #j 16383 16384
for #i 40 50
set %a [1] #j,#i
set %b[1] frac(%a[1])
log %a[1] - %b[1]
end_for
end_for
stop_script