Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
10 / 10 / 9
Регистрация: 23.04.2013
Сообщений: 81
1

Появляющиеся нули при переводе из массива char в double

04.05.2013, 17:12. Просмотров 612. Ответов 1
Метки нет (Все метки)

Здравствуйте! Пишу калькулятор и описываю кнопку "+/-".
C++
1
2
3
a=atof(nBuf);
a=a*(-1);
sprintf (nBuf, "%f", a);
nBuf - массив char, в котором записано число.
a - переменная типа double.
Вообще массив nBuf размером 10, поэтому фактически, имея в нем всего 1 цифру (например 4), при переводе с помощью функции atof переменная a получает число 4.000000000. А уже sprintf сокращает число незначащих нулей до стандартных 6. Как же возможно исправить мой код, чтобы не было этих нулей.

Добавлено через 20 минут
есть вариант вместо sprintf использовать
C++
1
_gcvt(a, MAXOUT, nBuf);
Но при переводе дробных чисел, точность страдает)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2013, 17:12
Ответы с готовыми решениями:

Перевод из double в int (ошибка при переводе)
При переводе некого получившегося числа из double в int, выводится неправильное число. Не могу...

Квадраты при переводе из char и string
Здравствуйте! Пробую написать генератор паролей, но при попытке перевода из char в string выдает...

При переводе string в long double теряется дробная часть
Помогите с программой. При переводе string в long double дробная часть становится равной нулю(не...

При переводе из double в string теряются знаки после запятой
Перевожу переменную double в string stringstream sst; string f_str; double f=12345.99; sst...

1
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
04.05.2013, 17:40 2
Хм... Попробуйте все нули в конце массива заменить на символы '\0'.

Типа nBuf[i] = '\0';
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 17:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при переводе значения из переменной char в переменную wchar_t
День всем добрый! Подскажите, пожалуйста, что я делаю не так? Я пытаюсь использовать функцию...

При смене Float на double программа выдает нули
Доброго времени. При вводе следующего кода float f; scanf("%f",...

Конвертирование массива char в long double
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; class money...

Как преобразовать часть массива char в double
есть большой массив char в нем есть несколько элементов которые нужно преобразовать в число типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.