Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Мат, округлние   Найти похожие ветки 

 
Defunct ©   (2004-10-29 00:53) [40]

GuAV ©   (29.10.04 00:35) [38]

Извините, но вы показываете свое неумение слушать.

X:=212432313.4998567925;

Конкретно в этом числе порядок наименьшего значащей цифры (5) = 10(-10). Соответственно E = 10(-11).
Все упирается в точность.

Опять же

Z:=212432313499856792.5;

при E=0.01 округлит верно.

для полноты картины надо бы добавить еще и
Y = 3212432313499856792.5;

В общем если вы пытаетесь показать ограниченность мантиссы, так с этим никто не спорит.


 
GuAV ©   (2004-10-29 01:02) [41]

Ну так, я и говорю, что Вы не можете написать E для кода где входные данные заранее неизвестны, поэтому при использовании Вашей функции нужно учитывать эти ограничения.
Это ни как не увязывается с

> "Программист! ДЕЛАЙ ВСЕ ПРОЩЕ".


 
Defunct ©   (2004-10-29 01:02) [42]

Verg ©   (29.10.04 00:41) [39]

> Можете еще с excel-ом поиграться.

Не, там жлобское округление.
если кредит (отрицательные числа) забирать больше.
если долг - отдавать меньше ;)

Есть еще бухгалтерское округление - обрезать до целого
(чтобы не платить лишнего) ;>

> Образует какое-то "альтернативное" понятие математического округления :))

Как в советской школе учили. округлять к большему. ;>

в яндексе правило округления отрицательных чисел должно быть. Там оно как в советской школе - к большему.


 
Defunct ©   (2004-10-29 01:13) [43]

GuAV ©   (29.10.04 01:02) [41]

Понимаете, особой разницы нет на каком знаке произойдет сбой
или на числе 212432313499856792.5 или на числе 32124323134998536792.5 (на нем уже все функции неправильно округляют).  Если просто работать с обычными числами (не гигантскими) тогда достаточно обойтись с помощью [12]. Eсли же работать с огромными числами (правильнее сказать с очень высокой точностью больше 50 знаков в числе), тогда ни ваша функция, ни функция Verg не помогут. Но, как правило, такая точность нигде не требуется.


 
Verg ©   (2004-10-29 01:51) [44]


> Давайте применим это правило к числам около нуля.
>


Давайте

0.5 + (-0.5) = 0

Что нам даст "жлобское" округление слагаемых? 1 + (-1) = 0 - тот же 0
Так, а теперь round( x + E)  -> 1 + 0 = 1

Так какое же округление на самом деле "жлобское"?


 
GuAV ©   (2004-10-29 02:17) [45]

Defunct ©   (29.10.04 1:13) [43]
32124323134998536792.5 (на нем уже все функции неправильно округляют).

:)
Точнее сказать такое число просто не может быть представленно с точностью выше целых. Т.е. .5 никуда не помещается. И функции уже ни при чём.

Defunct ©   (29.10.04 1:13) [43]
Eсли же работать с огромными числами (правильнее сказать с очень высокой точностью больше 50 знаков в числе), тогда ни ваша функция, ни функция Verg не помогут.

Названные функции работают при точности больше 50 двоичных знаков. О больше чем 64 знаках речь конечно идти не может - это уже действительно предел точности FPU.


 
pasha_golub ©   (2004-10-29 12:17) [46]

Ого, мужики развели.

Вообщем, на самом деле это вопрос тоже не мой, а друга. И он меня тоже ввел в пучину сомнений и раздумий. Потому и задал его тут. А оказалось все не так просто. Гы


 
pasha_golub ©   (2004-10-29 12:20) [47]

Ого, мужики развели.

Вообщем, на самом деле это вопрос тоже не мой, а друга. И он меня тоже ввел в пучину сомнений и раздумий. Потому и задал его тут. А оказалось все не так просто. Гы


 
Romkin ©   (2004-10-29 12:30) [48]

Все очень просто: Округляют к четному, дабы избежать дрейфа при операциях вида
1 + 0.5 - 0.5 + 0.5 - 0.5 ... Если каждый раз округлять, то "к четному" будет держать 2. А "школьное" - увеличиваться!


 
pasha_golub ©   (2004-10-29 12:40) [49]

Еще вопрос не по теме. Подскажите, где взять мануал по АСМу с сайта Интела, а то я как-то не нашел, видно руки...


 
Defunct ©   (2004-10-29 18:43) [50]

> pasha_golub ©   (29.10.04 12:20) [47]
> Потому и задал его тут.

Округлений просто море, потому что округление выполняет уменьшение точности, а как вы сами понимаете уменьшить точность можно как угодно. Выбирайте то, что нужно именно вам.
Мат округление, бухгалтерское, до четного, и т.п.

> pasha_golub ©   (29.10.04 12:40) [49]

http://search2.intel.com/corporate/default.aspx?q=Intel+IA-32+software+developers+manual+download

Там три части vol 1-3.
вторая часть "instruction set reference" в двух книгах по ~600стр. vol 2A, vol 2B


 
pasha_golub ©   (2004-11-04 12:04) [51]

Defunct ©   (29.10.04 18:43) [50]
Спасибо огромное, значит я не ошибался.



Страницы: 1 2 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.068 c
14-1099638640
anonim
2004-11-05 10:10
2004.11.21
Как крякнуть кряк?


14-1099215692
Topepo
2004-10-31 12:41
2004.11.21
Помогите в написании программы, плиз!


4-1097211141
drusha
2004-10-08 08:52
2004.11.21
как проиграть *.wav файл в voice модем


1-1099578647
Antiloop
2004-11-04 17:30
2004.11.21
TwebBrowser подскажите плиз


8-1093521739
Vlad2
2004-08-26 16:02
2004.11.21
Искажаются цвета Bitmap а при повторной отрисовке