Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dark94
10 / 10 / 3
Регистрация: 23.04.2013
Сообщений: 81
Завершенные тесты: 2
#1

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

04.05.2013, 17:12. Просмотров 414. Ответов 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);
Но при переводе дробных чисел, точность страдает)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2013, 17:12     Появляющиеся нули при переводе из массива char в double
Посмотрите здесь:

При переводе string в long double теряется дробная часть - C++
Помогите с программой. При переводе string в long double дробная часть становится равной нулю(не зависит от длины числа). #include...

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

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

Конвертирование массива char в long double - C++
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; class money { private: static const int...

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

Не могу понять почему вылазят нули. double и целочисленное деление - C++
#include<iostream.h> #include<math.h> void main() { int **mas,i,j,n,m; double s; cout<<"enter size of array<<n<<m"<<endl; ...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double - C++
Думаю из-за polp #include<iostream> #include<cmath> #include<cstdlib> using namespace std; double polp(double af,double...

char в double - C++
Как превратить char в double? Я хочу написать программу в которой вводится два числа и в результате выводится число типа double. Думал...

Из Char в Double - C++
Здравствуйте, не подскажет ли кто , как можно массив char переделать в double Например: char={'0' , ',' , '5555'} double x=0.0;

Преобразование из char в double - C++
Как обычно зашел задать тупой вопрос: плз., скажите как из char сделать double если double(переменная) вызывает ошибку.. Да,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
04.05.2013, 17:40     Появляющиеся нули при переводе из массива char в double #2
Хм... Попробуйте все нули в конце массива заменить на символы '\0'.

Типа nBuf[i] = '\0';
Ответ Создать тему
Опции темы

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