• Авторизация


Почему? 23-04-2007 13:31 к комментариям - к полной версии - понравилось!


в Microsoft Excel набираем
В ячейке A1: 507,7
В ячейке A2: 504,0
В ячейке A3: 3,7
В ячейке A4: =A1-A2-A3
Почему ноль получается отрицательным? И из-за этого условие сравнения с нулем не выполняется. Если другие числа забить - все нормально. Ничего не понимаю.
вверх^ к полной версии понравилось! в evernote
Комментарии (9):
получилось -0,14.... а если вместо 3,7 вставить 3,3, то получается вместо нуля 1,15463Е-14......воть
упс.....я опечаталась....вместо 0,14 надо читать -0,4
А там и не ноль получается... а -0,4... посмотри формат ячеек, который выбран...
Видение 23-04-2007-15:12 удалить
Это я очепяталась, в A2: 504,0
Ryjiy 23-04-2007-15:29 удалить
потомушто бил гейЦ даже не получил высшего образования! мелкомягкий маст дай!
Исходное сообщение Видение
Это я очепяталась, в A2: 504,0


Все равно это стандартная ситуация для любого языка программирования. Число там хранится в экспоненциальном формате, и разница между двумя разными числами может дать 1e-48. Т.е. 1*10^-48. В ячейку же согласно ее формату будет записан 0, т.е. результат ДЛЯ ОТОБРАЖЕНИЯ будет округлен. А хранится реальный. Если изменить формат ячейки, то увидишь, что там на самом деле.
Ryjiy 24-04-2007-13:25 удалить
замени условие сравниения с нулем на меньше по модулю чем 1е-10
Видение 28-04-2007-08:15 удалить
Заметки_и_мысли, Ryjiy, все это понятно, но почему при аналогичных условиях с другими числами ноль не минусовой? Что здесь срабатывает не так?
Видение, да не, все получается... по-разному получается :) и в другие клетки можно вбивать... Получится +0 или -0 заранее не сказать :) смотря как он записывает число...
вот другой пример:
506,6
506,0
0,6
Та же формула даст +0, или 2,27596Е-14
а тут получается -1,15463E-14
Ну вот так записываются числа... что поделать :)


Комментарии (9): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Почему? | Видение - Dejar atras los vientos | Лента друзей Видение / Полная версия Добавить в друзья Страницы: раньше»