在C ++中将double转换为固定小数点

时间:2010-10-02 01:45:18

标签: c++ decimal fixed-point

我在C ++中有一个双变量,并希望将其作为固定的小数点数打印到屏幕上。

基本上我想知道如何编写一个带小数和小数位的函数,并将数字打印到小数位数,必要时填零。

例如:

convert(1.235, 2)

会打印出来

1.24

 convert(1, 3)

会打印出来

1.000

所以该功能可以作为

convert(number as double, number of decimal places)

并简单地将所需的值打印到标准输出(cout)。

有谁知道怎么做?

提前致谢。

4 个答案:

答案 0 :(得分:5)

假设我正确记住了格式字符串,

printf("%.*f", (int)precision, (double)number);

答案 1 :(得分:4)

查看setprecision manipulator应该给你的想法

答案 2 :(得分:0)

没有“固定小数位”数字。 convert函数需要是实际打印出来的函数。我建议获取整个数字,然后打印出来。如果[小数位]> 0然后打印小数位,则单独打印每个小数,如:floor((n*log(10,d))%10);< - 只是一个想法,而不是实际代码。

答案 3 :(得分:-1)

#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);
} 

输出:1.23

reference