Преобразование типа double / float в строку

Мне нужно преобразовать число с плавающей запятой в эквивалентную строку в десятичной системе счисления (или с другим основанием). Сначала необходимо выполнить преобразование в формате xE + 0 , где x - это число с плавающей запятой.

Моя идея состоит в том, чтобы сначала усечь число с плавающей запятой до временное целое число, а затем преобразовать это целое число в строку, а затем рассмотреть дробную часть, умножить ее на 10 , пока дробная часть не станет 0 . После того, как дробная часть будет перенесена в левую часть десятичной точки, снова примените целое число к строковой функции и преобразуйте дробную часть в строку. Есть ли способ лучше, который будет быстрее этого? Будет ли этот метод вызывать какие-либо побочные эффекты?

Чтобы преобразовать число с плавающей запятой в экспоненциальное представление, должен ли я сделать то же самое, что и выше, а затем настроить мощность? Или непосредственно растровое маскирование представления с плавающей запятой IEEE 754 и преобразование каждой части в строку.

Примечание: никакие другие функции не могут быть использованы, потому что у меня нет доступа абсолютно к функциям библиотеки. Этот код входит в игрушечное ядро.

27
задан Peter Mortensen 18 November 2017 в 12:29
поделиться