Convert a double to fixed decimal point in C++

喜夏-厌秋 提交于 2019-12-01 18:02:06

问题


I have a double variable in C++ and want to print it out to the screen as a fixed decimal point number.

Basically I want to know how to write a function that takes a double and a number of decimal places and prints out the number to that number of decimal places, zero padding if necessary.

For example:

convert(1.235, 2)

would print out

1.24

and

 convert(1, 3)

would print out

1.000

so the function works as

convert(number as double, number of decimal places)

and simply prints out the required value to standard output (cout).

Does anyone know how to do this?

Thanks in advance.


回答1:


Assuming I'm remembering my format strings correctly,

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



回答2:


Look at the setprecision manipulator which should give you the idea




回答3:


There is no such thing as a "fixed decimal place" number. The convert function will need to be the function that actually prints it out. I would suggest getting the whole part of the number, then print it. If [decimal places]>0 then print a decimal place, then print each decimal individually like: floor((n*log(10,d))%10); <-- just an idea, not actual code.




回答4:


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

output: 1.23

reference



来源:https://stackoverflow.com/questions/3844010/convert-a-double-to-fixed-decimal-point-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!