Разбиение дробного числа
Как можно разбить дробное число на мантиссу и порядок? Функция frexp() дает разбиение в двоичной системе, а нужно в десятичной(чтобы красиво вывести число типа x*10^y на экран). Компилятор - MS Visual C++ 6.0.
Цитата:
Originally posted by tarekon
Как можно разбить дробное число на мантиссу и порядок? Функция frexp() дает разбиение в двоичной системе, а нужно в десятичной(чтобы красиво вывести число типа x*10^y на экран). Компилятор - MS Visual C++ 6.0.
Как можно разбить дробное число на мантиссу и порядок? Функция frexp() дает разбиение в двоичной системе, а нужно в десятичной(чтобы красиво вывести число типа x*10^y на экран). Компилятор - MS Visual C++ 6.0.
Я делал это простым преобразованием строки, получаемой при sprintf(s, "%lg", value);
буква e заменяется на то, что надо
Цитата:
Originally posted by tarekon
Как можно разбить дробное число на мантиссу и порядок? Функция frexp() дает разбиение в двоичной системе, а нужно в десятичной(чтобы красиво вывести число типа x*10^y на экран). Компилятор - MS Visual C++ 6.0.
Как можно разбить дробное число на мантиссу и порядок? Функция frexp() дает разбиение в двоичной системе, а нужно в десятичной(чтобы красиво вывести число типа x*10^y на экран). Компилятор - MS Visual C++ 6.0.
Можно предложить такой алгоритм:
// этот x - для примера
double x = 0.00345126781243;
int order = floor(log10(x)); // находим порядок
double mant = x/pow(10,order); // находим мантису
// вот все!