Автор кудат пропал по ходу? 
Лог:
16:15:33 4.12
16:15:33 4.13
16:15:33 4.13
16:15:33 4.14
16:15:33 4.16
Это конечно классика, но у меня щас не получилось воспроизвести этот баг, ни в версии 4.12, ни в 4.13, ни в 4.14 тем более (стоит Вин10, которая с год не обновлялась). Джонни там вродь писал, что математику поправил, но чтот у меня ощущение, что здесь идёт зависимость вычислений от какихт системных либ типа C Redistributable или .NET framework. Сам промурыжился с час тестов в поисках неправильных округлений, но результатов (найденных ошибок с этим вашим IEEE-754) так и не нашлось: 
Вот какие варианты пробовал: 
От Винта!))
print(round(4.115, -2))
print(round(4.125, -2))
print(round(4.135, -2))
print(round(4.145, -2))
print(round(4.155, -2))
halt
// 21.02.2019
#name "ieee754"
logclear
$a=0.0001
$b=0.01
$incr=0.0001
$lim=1
$round="0000"
$lvl=-2
for($a,$a<$lim,$incr)
   for($precis=-4,$precis<4)
      $g=round($a,$precis)
      if(strpos($g,$round)>0)
         print("  a = ",$a, ", $g = ",$g, ", precis = ",$precis)
      end_if
   end_cyc
end_cyc
for($h=0,$h<1000)
   for($precis=-4,$precis<1)
      $hh=round($h,$precis)
      if($h=int($hh))
         //
      else
         print("  h = ",$h, ", hh = ",$hh, ", precis = ",$precis)
      end_if
   end_cyc
end_cyc
print(0.1+0.2)
print(round(0.1+0.2,-4))
halt
// 21.02.2019
#name "ieee754"
logclear
$a=0.0001
$b=0.01
$incr=0.0001
$lim=1
$round="0000"
$lvl=-2
for($a,$a<$lim,$incr)
   for($precis=-4,$precis<4)
      $g=round($a,$precis)
      if(strpos($g,$round)>0)
         print("  a = ",$a, ", $g = ",$g, ", precis = ",$precis)
      end_if
   end_cyc
end_cyc
halt
// 21.02.2019
#name "ieee754"
logclear
$a=0.01
$b=0.01
$incr=0.01
$lim=100
$round="0000"
$lvl=-2
for($a,$a<$lim,$incr)
   for($b,$b<$lim,$incr)
      $c=$a/$b
      $d=$a*$b
      $e=$a-$b
      $f=$a+$b
      $aa=round($a,$lvl)
      $cc=round($c,$lvl)
      $dd=round($d,$lvl)
      $ee=round($e,$lvl)
      $ff=round($f,$lvl)
      if(strpos($c,$round)>0)
         print("  c = ",$a, " / ",$b," = ",$c)
      end_if
      if(strpos($d,$round)>0)
         print("  d = ",$a, " * ",$b," = ",$d)
      end_if
      if(strpos($e,$round)>0)
         print("  e = ",$a, " - ",$b," = ",$e)
      end_if
      if(strpos($f,$round)>0)
         print("  f = ",$a, " + ",$b," = ",$f)
      end_if
      //waitms(100)
      if(strpos($aa,$round)>0)
         print("  aa = ",$aa)
      end_if
      if(strpos($cc,$round)>0)
         print("  cc = ",$a, " / ",$b," = ",$cc)
      end_if
      if(strpos($dd,$round)>0)
         print("  dd = ",$a, " * ",$b," = ",$dd)
      end_if
      if(strpos($ee,$round)>0)
         print("  ee = ",$a, " - ",$b," = ",$ee)
      end_if
      if(strpos($ff,$round)>0)
         print("  ff = ",$a, " + ",$b," = ",$ff)
      end_if
   end_cyc
end_cyc
halt
Надеюсь, нигде в методиках не повторился. Так что возможно Джонни действительно пофиксил тему, вот только странно, что баг на 4,12 не возник, или может он у меня был на 4,11?