|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.09.2011, 18:22 | #1 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
проблема с элементарным математическим действием
День добрый. Я незнаю, может у меня со зрением что то не то, но все-таки...
Как так вообще? Может кто-нибудь сталкивался?
Все тривиальное просто
|
16.09.2011, 18:36 | #2 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Все правильно считает. Пересчитайте на калькуляторе.
K=m[0,0]*S=0.14*0,99154865839 =-0,1388168121746 L=m[1,0]*C=1.07*0.12973533848 = 0,1388168121736 B_axye=K+L=-0,1388168121746+0,1388168121736=0.0 000000000010 Сложите K и L и получите B_axye, приблизительно равную нулю.
Если помог, проси поставить минус. Будь оригинален!
|
16.09.2011, 18:42 | #3 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
Да я разве спорю? Суть то в том, что k и l отличаются только знаком, далее считаем сумму, результат = 2,7755575616e-17. Если бы там ноль получался, то я бы не стал спрашивать.
Кстати, на фото процесс сложения уже осуществлен. В общем, если кому интересно. Решил дебильным (иначе не скажешь) способом: перед суммой поставил Код:
Все тривиальное просто
Последний раз редактировалось Stilet; 17.09.2011 в 08:42. |
16.09.2011, 23:04 | #4 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 558
|
Интересно вы переменные обзываете!
Хотелось бы прочитать ваши комменты в тех проектах, которые сложно поддаются разработке и отладке. |
16.09.2011, 23:41 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я в таких случаях для понимания происходящих процессов обычно рекомендую ознакомиться: статья Антона Григорьева "Неочевидные особенности вещественных чисел" Загадки округления p.s. вообще-то, Вы получили число: 2,7755575616e-17 если записать его в более привычном виде, получаем 0.000000000000000027755575616 согласитесь, что это число ОЧЕНЬ близко к нулю. В Вашем случае достаточно будет использовать функции округления Round() или RoundTo() |
21.09.2011, 16:34 | #6 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
Serge_Bliznykov, благодарю, такой ответ мне и нужен был.
*PB* эта хитровыдуманая переменная на самом деле даже не требуется, ввел просто для того, чтобы слева в отладчике было проще увидеть значение. А эмоциональность связана с тем, что k и l в том же отладчике имеют одинаковые по модулю значения. Входные данные я не из головы брал, поэтому думал, что так и есть, проверить вручную не догадался.
Все тривиальное просто
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс, являющийся трехмерным математическим вектором. | fafa2010 | Помощь студентам | 1 | 25.06.2010 10:03 |
Нужна программа на C# с математическим численным методом | iFluid | Общие вопросы .NET | 2 | 23.06.2010 13:16 |
Моделирование движения тела под действием силы тяжести | AleSS | Помощь студентам | 11 | 27.01.2010 16:03 |
Моделирование движения тела под действием силы тяжести | AleSS | Помощь студентам | 0 | 26.01.2010 16:45 |
Сопоставление математическим формулам их названий | Ghost_V | Помощь студентам | 0 | 17.12.2009 21:55 |