Главная страница
    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.04 c
14-1101982898
infom
2004-12-02 13:21
2004.12.26
Посоветуйте хороший Русско <-> Украинский пеерводчик !!!


14-1102366856
VEG
2004-12-07 00:00
2004.12.26
Новый IE теперь блокирует скрипты с чужого хоста


1-1103025651
User1
2004-12-14 15:00
2004.12.26
ООП. [Warning] при использовании класса в классе


1-1102498183
Dolphin001
2004-12-08 12:29
2004.12.26
WebBrowser charset


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