Показать сообщение отдельно
  #3 (permalink)  
Старый 23.08.2010, 09:07
DMH DMH вне форума
Аспирант
Отправить личное сообщение для DMH Посмотреть профиль Найти все сообщения от DMH
 
Регистрация: 26.02.2010
Сообщений: 71

Можно даже проще -
alert(0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)

получим 0.999...999;
А вот если проделать тоже самое в c#, то результат будет верный -
Response.Write(0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)

получим 1.

Из той статьи -
Цитата:
То есть, с математической точки зрения, операция сложения чисел с плавающей запятой не ассоциативна: (a + b) + c != a + (b + c).
+ округление формата.
Более менее ясно с математической стороны, но с логической стороны не могу принять сей факт, в школе учили, что 0.1+0.1=0.2, а не 0.3.
Ответить с цитированием