Как-то для преобразования числа float использовал (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Беня 25 июня 2004 г. 13:38
В ответ на: Преобразование Float to String (и обратно) на AVR отправлено ДМ 25 июня 2004 г. 13:04

такую идею. Операции с плавающей точкой занимают много времени, поэтому я вначале прикидывал, сколько знаков после запятой надо выводить (правда у меня всегда было фиксированное число - три знака). Затем я умножал на 1000 (10 в третьей степени по количеству знаков) и приводил к целому типу. Выводил как целое (это легко, используя операции деления и остаток от деления), а потом вставлял десятичную точку в известную позицию.
Например, число 8765.4321 и я хочу получить строку с этим числом и с тремя знаками после запятой. Умножаю на целое 1000 - получаю
"8765432.1". Преобразовываю в целое - получаю "8765432". Ну и символ десятичной точки должен быть перед 3-й цифрой с конца (потому как 3 знака после запятой). Вставляю, получаю "8765.432".
Вот такой "облегченный" метод перевода. Хотя наверное есть и более оптимальные методы.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru