Главная страница
    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.031 c
14-1101994838
Anton_K
2004-12-02 16:40
2004.12.26
Глюк компилятора (в Delphi 7)?


3-1101498589
SergP
2004-11-26 22:49
2004.12.26
TDBGridEh. Запретить перемещение столбцов. (Повторно)


4-1100189391
Dominus
2004-11-11 19:09
2004.12.26
Раскладка клавиатуры


14-1102018946
Kolan
2004-12-02 23:22
2004.12.26
Помогите с сайтом.


3-1101802909
Russko
2004-11-30 11:21
2004.12.26
Проверка на "занятость" базы данных.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский