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

Вниз

Проблемма: вместо 0,99999999999 пишет 1 - округляет. =((   Найти похожие ветки 

 
Hmm ©   (2004-12-11 23:36) [0]

Здрасвуйте.

Вот ведь какая проблемма возникла: тип вычисляемой переменной extended, т.е. по идее число, полученное в результате нехитрых расчетов, может содержать максимум 20 знаков после запятой (если я правильно понимаю сие: "число значащих разрядов"), но максимум, что вычисляется правильно это 0,9999999999 (10 девяток), число же 0,99999999999 (11 девяток) делфя округляет до единицы, что не приемлимо(!).

Помогите, пожалуста, разобраться, решить проблемму.


 
Anatoly Podgoretsky ©   (2004-12-11 23:45) [1]

Приведи пример


 
default ©   (2004-12-11 23:45) [2]

"0,9999999999 (10 девяток),"
а если бы было 20 девяток было бы лучше?
я так конкретно и не понял что нужно тебе(
на счёт значащих цифр
можно сказать что это так как ты говоришь но число должно быть нормализованно
например числа
0.00002
2
имеют оба по одной значащей цифре
остальную информацию можно задать ввиде порядка - 10^N
2=2*10^0
0.00002=2*10^-5


 
jack128 ©   (2004-12-12 00:21) [3]

Caption := FloatToStrF(0.99999999999999, ffFixed, 14, 14); // 14 девяток


 
jack128 ©   (2004-12-12 00:22) [4]

Кстати разряды бывают не только десятичные, но и двоичные..


 
Hmm ©   (2004-12-12 00:33) [5]

Хм... видимо какае-то фигня с настройкой делфы. Попробовал сохранить результаты вычислений в текстовый файл - все в порядке, т.е. округлений не производиться, все пишется как есть.

Просто при "пошаговой" компиляции, при наведении мыши на переменную, вместо точного значения (0,99999999999) выплывала единица.

ЗЫ: в любом случае, спасибо за внимание.


 
GanibalLector ©   (2004-12-12 00:48) [6]

>Кстати разряды бывают не только десятичные, но и двоичные..
Не понял.Подробнее плз.


 
Cobalt ©   (2004-12-12 00:59) [7]

2 GanibalLector ©   (12.12.04 00:48) [6]
Любое число, с которым работает компьютер при помощи сопроцессора (не будем принимать во внимание двоично-десятичные числа (BCD)) - они представлены в 2-ой счётной системе, т.е. у них округление не до десятичного к-либо разряда, а до двоичного.


 
GanibalLector ©   (2004-12-12 01:26) [8]

2 Cobalt
Смешно...Вообще-то я программирую на микроконтроллерах(на асме тоесть) и [7] знаю лет так с 15.
Меня не то зацепило,я про  FloatToStrF [3] и пост [4].
Я всегда думал,что inttohex...а тут такая удача,перевод вещественного в hex одним оператором.Но не тут то было,я уже поглядел на F1.
З.Ы.А может Вы хотели меня обидеть?


 
GanibalLector ©   (2004-12-12 01:29) [9]

Хотя конечно,моя вина,признаю...Не особо вчитался в сабж и полез постить,отсюда и  [7].Ладно,забыли.



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

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

Наверх




Память: 0.49 MB
Время: 0.04 c
3-1101163399
GanibalLector
2004-11-23 01:43
2004.12.26
Запрос


1-1102594607
Александр второй
2004-12-09 15:16
2004.12.26
Что означает параметр s в функций ParamStr(s)


14-1102083278
Igor_thief
2004-12-03 17:14
2004.12.26
Delphi 2005 и RAVE


14-1102265524
Pat
2004-12-05 19:52
2004.12.26
Прикольная игрушка для автолюбителей


9-1092736187
Orbital
2004-08-17 13:49
2004.12.26
Расчет траектории при движении на орбите