APMEH Posted September 16, 2003 Report Share Posted September 16, 2003 http://gazeta.ru/50880.shtml Quote Link to post Share on other sites
Darvin Posted September 17, 2003 Report Share Posted September 17, 2003 vlom 4itat.. :} Quote Link to post Share on other sites
shushanik Posted September 17, 2003 Report Share Posted September 17, 2003 Если я куплю эту книжку, то выброшу деньги на ветер, потому что не въеду. А что это за ошибка была? К чему привела? По-русски в двух словах можно? Quote Link to post Share on other sites
APMEH Posted September 17, 2003 Author Report Share Posted September 17, 2003 ну в общем такая вещь. представь что ты что-то изобрела потом это стало стандартом... везде твое изобретение применяется... в космосе, медицине итп. лет через 10 ты понимаешь что была неправа и тут все - конец... дальше пути нет... ГЛОБАЛЬНАЯ ОШИБКА - ГЛОБАЛЬНЫЕ ПРОБЛЕМЫ вот например ошибка с плавающей точкой(дроби по нашему ) )... т.е. компьтер не правильно производил операции с числами с плавающей точкой. не сразу, нееет на вид врожде все нормально но на каком-то моменте всееее, ошибка... точнее не ошибка а не правильно кстати эти проблемы существуют и сейчас... криво написаная программа особенно бухгалтерская, банковская может принести ооочень много проблем) Quote Link to post Share on other sites
APMEH Posted September 17, 2003 Author Report Share Posted September 17, 2003 Весьма часто простые дроби вроде 0.1 или 0.7 не могут конвертироваться в их внутренние двоичные представления без потери точности. Это может привести к парадоксальным результатам: например, floor((0.1+0.7)*10) обычно возвращает 7 вместо ожидаемого 8 как результат внутреннего представления приблизительного числа 7.9999999999.... вота) Quote Link to post Share on other sites
shushanik Posted September 17, 2003 Report Share Posted September 17, 2003 Что самое удивительное - я всё поняла, что ты рассказал. Спасиба. Я иногда буду сюда заглядывать в целях ликбеза. Ладно? Quote Link to post Share on other sites
SAS Posted September 17, 2003 Report Share Posted September 17, 2003 Весьма часто простые дроби вроде 0.1 или 0.7 не могут конвертироваться в их внутренние двоичные представления без потери точности. Это может привести к парадоксальным результатам: например, floor((0.1+0.7)*10) обычно возвращает 7 вместо ожидаемого 8 как результат внутреннего представления приблизительного числа 7.9999999999.... вота) Армен, опытный программист всегда напишет floor( (0.1+0.7 + epsilon)*10 ), где, например, epsilon = 0.0000000001 и никакой ошибки. Quote Link to post Share on other sites
SAS Posted September 17, 2003 Report Share Posted September 17, 2003 Откройте калькулятор на своем компьютере, выберите опцию "научный"( view\scientific). Далее делайте следующее: два плюс два(не нажать на кнопку "=" ) умноженное на два. Получите 6. Вычисление происходит по порядку 2 + 2 * 2 = 6 Потом выберите опцию "стандарт" (view\standart) и делайте то же самое... Получите ... 8. Вычисление происходит по порядку (2 + 2) * 2 = 8 Так чему же равно два плюс два умноженное на два? А Бог знает...или же черт. Quote Link to post Share on other sites
shushanik Posted September 18, 2003 Report Share Posted September 18, 2003 Армен, опытный программист всегда напишет floor( (0.1+0.7 + epsilon)*10 ), где, например, epsilon = 0.0000000001 и никакой ошибки. А вы тему с начала почитайте. Я его просто попросила по-русски, в 2 словах, без выпендра. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.