Преобразовать двойную десятичную точку в C ++

У меня есть двойная переменная в C ++, и я хочу вывести ее на экран в виде числа с фиксированной десятичной точкой.

В основном я хочу знать, как написать функцию, которая принимает двойное число и число десятичных знаков и выводит число в это число десятичных знаков, при необходимости добавляя ноль.

Например:

convert(1.235, 2)

распечатал бы

1.24

а также

 convert(1, 3)

распечатал бы

1.000

поэтому функция работает как

convert(number as double, number of decimal places)

и просто выводит требуемое значение на стандартный вывод (cout).

Кто-нибудь знает как это сделать?

Заранее спасибо.

 Anycorn02 окт. 2010 г., 03:50

Ответы на вопрос(4)

Посмотри наманипулятор что должно дать вам идею

Не существует такого понятия, как число с фиксированным десятичным знаком. Функция преобразования должна быть функцией, которая фактически выводит ее на печать. Я хотел бы предложить получить всю часть номера, а затем распечатать его. Если [десятичные разряды]> 0, то выведите десятичное число, а затем напечатайте каждое десятичное число отдельно, например:floor((n*log(10,d))%10); <- просто идея, а не реальный код.

Решение Вопроса

Предполагая, что я правильно помню строки формата,

printf("%.*f", (int)precision, (double)number);
 tree-hacker02 окт. 2010 г., 04:04
большое спасибо за код
#include <iomanip>
#include <iostream.h>

// print a float, x places of precision 
void convert (double number, int x)
{
    cout << setprecision(x) << number << endl;
}

int main()
{
    double a = 1.234;
    convert (a,2);
} 

ссылка

 Avio14 авг. 2014 г., 12:19
Просто неправильно какэтот ответ.

Ваш ответ на вопрос