Форум: "Основная";
Текущий архив: 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