| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > дробная часть числа -> строка, как ???? |
| Автор: Волод 17.8.2005, 05:21 | ||
| Не получается преобразовать дробную часть числа в строку Привет всем! Есть необходимость перевести float – число в символьную строку. С целой частью числа я справился, а вот на дробной застрял… Попытался применить вот такой алгоритм: Пусть temp2-это дробная часть, str-это заполняемый массив, тогда
то есть я предполагал умножать дробную часть на 10 до тех пор, пока дробная часть не выродится. Но такой алгоритм для всех чисел не прокатывает. Например, если temp2 =0.125, все работает правильно. Но если я подставляю 0.235 – начинаются глюки (видимо из-за погрешности float-чисел) – при каждой интерации цикла при выполнении строки (temp2=temp2- (int)temp2) в temp2 в конец дробной части начинают добавляться дополнительные "левые" разряды, в результате чего вырождение дробной части не происходит – и программа прсто вылетает. А как еще можно выделить дробную часть числа? – может, можно по другому отбросить целую часть (без вычитания), или, например, получить количество разрядов дробной части |
| Автор: chaos 17.8.2005, 07:07 |
| воспользуйся sprintf или _fcvt и не мучайся |
| Автор: xgm 17.8.2005, 10:15 |
| лучше sprintf и fmod |