7

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

基本上我想知道如何编写一个函数,该函数采用双精度和小数位数并将数字打印到小数位数,必要时补零。

例如:

convert(1.235, 2)

会打印出来

1.24

 convert(1, 3)

会打印出来

1.000

所以这个函数的工作原理是

convert(number as double, number of decimal places)

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

有谁知道如何做到这一点?

提前致谢。

4

4 回答 4

6

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

printf("%.*f", (int)precision, (double)number);
于 2010-10-02T01:52:25.760 回答
4

看看setprecision 操纵器应该会给你这个想法

于 2010-10-02T01:51:53.873 回答
0

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

于 2010-10-02T01:51:54.590 回答
-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

参考

于 2013-11-22T15:31:52.797 回答