Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 15:23   #91
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от __STDC__
showmessage(floattostr((443.432-440)*100)); = 343.2 =) А какой делфи у вас? у меня delphi 7
Если писать именно так, то у меня тоже все верно )
А вот если как здесь, то результат:
343.200000000002

У меня тоже семерка )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 15:36   #92
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Хм.. и правда)) Интересно... что за странные погрешности...
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 17.05.2009, 16:02   #93
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Проинициализировал нулями переменные в начале..
Код:
  a:=0.0E+307;
  b:=0.0E+307;
  c:=0.0E+307;
основной код такой
Код:
  a:=4.34320E+2;
  b:=4.40E+2;
  c:=(a-b)*100;
  showmessage(floattostr(c));
и посмотрел все в отладчике внутреннем..
получилось так:
1.PNG - проинициализированные нулями переменные, все идентичны
2.PNG
3.PNG
4.PNG
5.PNG
т.е. получается все это вылезает на этапе преобразования в строку?? Надо будет в ollydbg посмотреть еще...
Uguu~

Последний раз редактировалось __STDC__; 17.05.2009 в 16:24.
__STDC__ вне форума Ответить с цитированием
Старый 17.05.2009, 16:09   #94
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от __STDC__
т.е. получается все это вылезает на этапе преобразования в строку??
+1
Сейчас тоже посмотрел сразу после строчки
Код:
Edit1.Text := FloatToStr(a);
a = 343.2
floattostr(a) = '343.200000000002'

Странно..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 16:17   #95
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Вопрос

Цитата:
Странно...
То что это "странно" сказал ещё Я...

Как сделать так, чтоб он нормально считал..?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.05.2009, 16:39   #96
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

А вот еще загадка. Пишем такой код
Код:
  while (b < 4.40E+2) do begin
    a:=a-2.0;
    b:=b+2.0;
    showmessage(floattostr(a));
  end;
получаем
1.PNG
2.PNG
вот эта двойка появляется при переходе из разряда 10 в разряд 1.. до этого на протяжении всего цикла нормальные результаты
с другой стороны, если написать такой
Код:
  a := 11.432;
  showmessage(floattostr(a));
  b := 2.0;
  c := a-b;
  showmessage(floattostr(c));
получим
1.PNG
3.PNG
возможно дело в накоплении погрешности?
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 17.05.2009, 16:46   #97
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Предлагаю к прочтению интересную статью )
Неочевидные особенности вещественных чисел
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 16:58   #98
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

мда) ну что тут можно сказать...
надо использовать extended тогда... с ним вроде правильно..
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 17.05.2009, 17:26   #99
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Хехехе... в самом деле.. ничего уже тут не поделаешь.. =)
Код:
#include <stdio.h>

main() {
       double a,b,c;
       
       a = 4.43432E+2;   
       b = 4.40000E+2;
       c = (a-b)*100;
       
       printf("%.20f",c);   
}
-----> 343.20000000000164000000
если с float:
-----> 343.20068359375000000000
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 17.05.2009, 17:32   #100
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Похоже, мы проиграли эту битву
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти сумму цифр, состовляющих числа. babaika Общие вопросы C/C++ 4 29.12.2008 08:58
Найти первую цифру в данных ячейки.. kra183 Microsoft Office Excel 11 09.05.2008 01:35
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
двузначные числа которые при умножении на 3 будут заканчиваться на цифру 4 Ases_51 Паскаль, Turbo Pascal, PascalABC.NET 4 13.01.2008 11:37
как найти корень из числа $Дмитрий Общие вопросы Delphi 7 26.04.2007 13:40