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

Long double отображается не верно - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно заменить повторяющиеся пробелы в тексте. Работает только для 1 строки http://www.cyberforum.ru/cpp-beginners/thread1191170.html
#include "stdafx.h" #include "iostream" #include "fstream" #include "string" #include "locale.h" using namespace std; void main() {
C++ Как найти нужные данные в строке? Hi. Работаю с сокетами. Получил html страницу. Там есть строка: <input type="submit" tabindex="5" class="button blue" value="Login" /> Как мне отпарсить весь файл и найти там значение... http://www.cyberforum.ru/cpp-beginners/thread1191145.html
Найти индексы i и j для которых существует наибольшая последовательность a[i]-a[i+1]+a[i+2]-a[i+3]. +/-a[j] C++
Найти индексы i и j для которых существует наибольшая последовательность a-a+a-a... +/-a я чутка не понял задачку , может кто объяснить примером))
C++ Исправить код
//#include<iostream.h> #include"time.h" #include<string> using namespace std; const double price=0.0025; const int N=3; const int OK=1; const int ERROR=0; static int empty=N; static int...
C++ Сортировка в структуре http://www.cyberforum.ru/cpp-beginners/thread1191112.html
Нужно считать в структуру информацию из файла, и отсортировать по зарплате. В файле записана информацию: Имя, год рождения, и зарплата. Со строки 44 по 54 выполняю сортировку, правильно ли я ее...
C++ Проверить, что условие 63! -61! =71*k, найти к Проверить, что условие 63!-61!=71*k. Найти к? Как это делать, я не знаю подробнее

Показать сообщение отдельно
Dvarik
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 4

Long double отображается не верно - C++

28.05.2014, 15:15. Просмотров 264. Ответов 7
Метки (Все метки)

суть проблемы такова:
решаю задачу где вводится некое значение long double, большое значение, которое в последствии переводится в string
так вот компилятор long double постоянно округляет, то есть если я ввожу 123456,789, то получаю 123457, вот это значение и присваивается типу string.
как можно решить данную проблему, пробовал это как на microsoft visual С++, так и на более новом microsoft visual studio, результат такой же

тут моя попытка решения(задача не закончена), может сам где-то накосячил:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//glava 7 zadacha 11
#include<iostream>
#include<windows.h>
#include<math.h>
#include<sstream>
using namespace std;
/////////////////////////////////////////////////
static const int i = 20;
/////////////////////////////////////////////////
 
class ldtoms
{
private:
    long double ld_input;
    //long double ld_output;
public:
    void do_work()
    {
        int dlina_proverka = 0;
        int index_zpt;
        while ( dlina_proverka != 1 )
        {           
            cout << "ââåäèòå âåëè÷èГ*Гі äëÿ ïåðåâîäГ* Гў äåГ*ГҐГ¦Г*ûé ôîðìГ*ГІ:  ";
            cin >> ld_input;
            printf("%f \n", ld_input);
            cout << "ld_input = " << ld_input << endl;
            if (ld_input < 100000000000000000)
            {
                dlina_proverka = 1;
            };
        };
        cout << "ïðîâåðêГ* ïðîéäåГ*Г* ГіГ±ГЇГҐГёГ*Г®" << endl;
        ostringstream oss;
        oss << ld_input << ends;
        string ustring = oss.str();
        printf("%s \n", ustring.c_str());
        cout << "ustring = " << ustring << endl;
        index_zpt = ustring.length();
        for (int i = 0; i < ustring.length(); i++)
        {
            cout << i << ' ' << ustring[i] << endl;
            if (ustring[i] == '.')
            {
                index_zpt = i;
            };
            /*else
            {
                index_zpt = ustring.length();
            };*/
        };
        cout << "index_zpt = " << index_zpt << endl;
    };
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int a;
    ldtoms money_long;
    money_long.do_work();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru