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

Форматирование вывода и округление double - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача по ссылке и по значению http://www.cyberforum.ru/cpp-beginners/thread1795910.html
Эта тема стара как мир, но я хотел уточнить одну вещь. QBluetoothAddress* address = new QBluetoothAddress("00:1A:7D:DA:71:15"); void try_connect_to_local_address(QBluetoothAddress &address); Как сделать так, чтобы в функции try_connect_to_local_address в качестве аргумента была передена address, а не ее копия или новый объект?
C++ Отловить русские буквы с помощью библиотечной функции Через _gettch() отлавливаю код вводимой буквы.Ввод произвожу на русской раскладке.При нажатии буквы "п" отлавливает код "63" и пишет что соответствует этому коду знак "?". Пробовал делать следующее: SetConsoleCP(1251); SetConsoleOutputCP(1251); так же пробовал делать через setlocale ставить LC_ALL Russian.Результата нету.Что делать, помогите, плевое дело такое не дает зделать проверку на... http://www.cyberforum.ru/cpp-beginners/thread1795908.html
C++ Наследование классов в раздельных файлах
Здравствуйте! Вопрос: Реализовал .h и .cpp файлы для класса односвязного списка. Затем создал унаследованный от этого класса класс для двусвязного списка. Оба класса реализованы в отдельных файлах и при компиляции возникает ошибка. Кидаю код всех файлов. list.h: #ifndef LIST_H #define LIST_H class List
C++ Изменить размер изображения
Здравствуйте! Помогите решить задачу, мой код проходит только половину тестов. Условия:При обработке изображений часто встречается такая задача, когда нужно изменить размер изоб- ражения так, чтобы оно “вписалось” в заданный прямоугольник. То есть исходное изображение уменьшается (или увеличивается) таким образом, что одна из его сторон становится точно рав- ной соответствующей стороне...
C++ Перевод денежных единиц http://www.cyberforum.ru/cpp-beginners/thread1795887.html
Помогите, решить задачу! С виду легко, но чего-то я туплю. П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
C++ Факторизация больших чисел Товарищи, ни у кого не завалялось добротной реализации какого-нибудь (лучше экспоненциального) метода факторизации для "взрослых" чисел (от 128 битов)? В идеале на gmp. Ссылки на чужие реализации тоже приветствуются. Всё, что нашёл сам, запустить по разным причинам не удалось( Задача горит, быстро и эффективно(!) реализовать что-либо сложнее метода Ферма на gmp не смогу, посему взываю к... подробнее

Показать сообщение отдельно
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 600
Завершенные тесты: 1
20.08.2016, 01:24     Форматирование вывода и округление double
Цитата Сообщение от InDark Посмотреть сообщение
Спасибо. А с помощью флагов форматирования вывода это никак сделать нельзя?
Про флаги форматирования я не знаю, но так ведь работает, вроде:
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
#include <iostream>
#include <conio.h>
#include <string>
#include <sstream>
#include <iomanip>
#include <algorithm>
#include <vector>
 
std::string RoundAndTransformToString(double number)
{
    std::stringstream stream;
    stream << std::fixed << std::setprecision(2);
    stream << number;
 
    auto str = stream.str();
 
    bool removeFloat = true;
    for (auto itr = std::find(str.begin(), str.end(), '.') + 1; itr != str.end() ; ++itr)
        if (*itr != '0')
            removeFloat = false;
 
    if (removeFloat)
    {
        str.resize((size_t)std::distance(str.begin(), std::find(str.begin(), str.end(), '.')));
        return str;
    }
 
    str.erase(std::remove_if(str.begin() + 1, str.end(), [](char c) { return c == '0'; }), str.end());
 
    return str;
}
 
int main()
{
    std::vector<double> testNums{ 0.007, 2.1, 2.007, 2.89901, 0, 2.559, 146.001, 6.999, 0.803};
 
    for (auto i : testNums) std::cout << i << " --> " << RoundAndTransformToString(i) << std::endl;
 
    _getch();
}
 
Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru