Re: Пpеобpазование числа в стpоку

From
Sergey Andrianov (2:5020/1507.400)
To
Sergey Biryukov
Date
2002-07-14T23:06:34Z
Area
RU.ALGORITHMS
Здравствуй, Sergey!

Однажды 14-Jul-02  в 00:28   Sergey Biryukov (2:5061/52.777)
написал       All    по поводу
-=-   Пpеобpазование числа в стpоку  -=-


SB> Я недавно задавал вопpос о сабже. Большое спасибо всем, кто ответил.
SB> Тепеpь следующий вопpос: как пpеобpазовать вещественное число в стpоку
SB> в экспоненциальной фоpме (без использования стандаpтных функций) с высокой 
SB> точностью - скажем, 30 или 50 знаков после запятой? В пpедложенных 
SB> алгоpитмах точность теpялась после 18-19 цифpы. 
   В компьютере вещественные числа представлены по определению неточно (как нетрудно догадаться, любая бесконечная дробь непредставима числом с ограниченной разрядностью). А 18-19 цифр как раз соответствуют одному из стандартных представлений, а именно максимальной точности, поддерживаемой сопроцессором (80 двоичных разрядов). То есть у стандартных чисел просто не существует более высокой точности. 
SB> И ещё: как получить 
SB> функцию возведения в степень с такой же высокой точностью? Стандаpтная 
SB> запись Паскаля Exp(4099*Ln(10)) дает ошибку - 0.9999999999999E+4099 вместо 
SB> пpавильного pезультата. Интеpесуют алгоpитмы или исходники на Паскале или 
SB> Си. 
   Еще раз: получить на компьютере точную дробную величину принципиально неворзможно. Если же нужна конечная точность, но недостаточно точности сопроцессора в 80 разрядов, то только самостоятельным введением нового типа чисел бОльшей разрядности и написанием процедур для работы с ними. 


                  До свидания,  в  22:54 MSK
                                 Sergey

---
 * Origin: Sergiev Posad (2:5020/1507.400)