Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

Проблемма: вместо 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
3-1101379348
Frozzen
2004-11-25 13:42
2004.12.26
Позиционирование в ДБГриде


3-1101715981
neat
2004-11-29 11:13
2004.12.26
Автоинкрементное поле


14-1102164214
Andy BitOff
2004-12-04 15:43
2004.12.26
Чьи файлы?


6-1097574225
Grigory
2004-10-12 13:43
2004.12.26
Что такое _RemotableHandle при использовании IHTMLElementRender


1-1102740153
gedd
2004-12-11 07:42
2004.12.26
Как открыть дочернюю форму в Delphi 2005 (Winform приложение)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский