Вот небольшая жемчужина прямо из моего VBE (MS Excel 2007 VBA):
?clng(150*0.85)
127
x = 150*0.85
?clng(x)
128
Кто-нибудь может объяснить такое поведение? ИМХО, первое выражение должно давать 128 (0,5 с округлением до ближайшего четного) или, по крайней мере, оба результата должны быть равны.
CLng(CDbl(150*0.85))
исправляет это.Round(150*0.85)
тоже. - person wqw   schedule 14.02.2011