Здравствуйте, AMogil, Вы писали:
AM>AM>Интересный фокус:
AM>При вычислении SimpleRoundTo(1.345 , -2) по информации watch'a:
AM>RoundMode rmUp rmDown
AM>В исходном коде SimpleRoundTo
AM>AValue / LFactor 134.5 134.5
AM>(AValue / LFactor) + 0.5 135 135
AM>Trunc((AValue / LFactor) + 0.5) 134 (!!!!!) 135
AM>В моем коде (Trunc(135)) 135 135
AM>Фокус, блин.
AM>
Да, дело в IntPower.
rmNearest
lFactor := IntPower(10, -2) > 0.01 !
Frac((AValue / LFactor) + 0.5) = 1 !!!
отсюда и Trunc(...) = 134
rmDown
lFactor := IntPower(10, -2) < 0.01
дальше все нормально.
Явно борландовые фокусники