Jump to content

Знаменитая ошибка в Pentium


Recommended Posts

ну в общем такая вещь.

представь что ты что-то изобрела

потом это стало стандартом...

везде твое изобретение применяется...

в космосе, медицине итп.

лет через 10 ты понимаешь что была неправа и тут все - конец...

дальше пути нет...

ГЛОБАЛЬНАЯ ОШИБКА - ГЛОБАЛЬНЫЕ ПРОБЛЕМЫ

вот например ошибка с плавающей точкой(дроби по нашему :-) )...

т.е. компьтер не правильно производил операции с числами с плавающей точкой.

не сразу, нееет

на вид врожде все нормально

но на каком-то моменте всееее, ошибка... точнее не ошибка а не правильно

кстати эти проблемы существуют и сейчас...

криво написаная программа особенно бухгалтерская, банковская может принести ооочень много проблем:-)

Link to post
Share on other sites

Весьма часто простые дроби вроде 0.1 или 0.7 не могут конвертироваться в их внутренние двоичные представления без потери точности. Это может привести к парадоксальным результатам: например, floor((0.1+0.7)*10) обычно возвращает 7 вместо ожидаемого 8 как результат внутреннего представления приблизительного числа 7.9999999999....

вота:-)

Link to post
Share on other sites
Весьма часто простые дроби вроде 0.1 или 0.7 не могут конвертироваться в их внутренние двоичные представления без потери точности. Это может привести к парадоксальным результатам: например, floor((0.1+0.7)*10) обычно возвращает 7 вместо ожидаемого 8 как результат внутреннего представления приблизительного числа 7.9999999999....

вота:-)

Армен,

опытный программист всегда напишет

floor( (0.1+0.7 + epsilon)*10 ), где, например, epsilon = 0.0000000001 и никакой ошибки. :)

Link to post
Share on other sites

Откройте калькулятор на своем компьютере, выберите опцию "научный"( view\scientific).

Далее делайте следующее:

два плюс два(не нажать на кнопку "=" ) умноженное на два. Получите 6. :)

Вычисление происходит по порядку 2 + 2 * 2 = 6

Потом выберите опцию "стандарт" (view\standart) и делайте то же самое... Получите ... 8.

Вычисление происходит по порядку (2 + 2) * 2 = 8 :)

Так чему же равно два плюс два умноженное на два? А Бог знает...или же черт. :yes:

Link to post
Share on other sites

Армен,

опытный программист всегда напишет

floor( (0.1+0.7 + epsilon)*10 ), где, например, epsilon = 0.0000000001 и никакой ошибки. :)

А вы тему с начала почитайте. Я его просто попросила по-русски, в 2 словах, без выпендра.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...