我是C++的新手.我有双变量double a=0.1239857
我想限制a
小数点两位数的变量.所以我a
会0.12
.我知道C++的函数返回的最大或最小整数大于或小于a
ceil或floor.是否有一个函数实现浮点变量的数字限制?或者我如何改变a
变量的精度?
最好的祝福...
Aln*_*tak 23
你真的试图绕数字,或只是改变它的显示精度?
对于前者(截断额外数字):
double scale = 0.01; // i.e. round to nearest one-hundreth
value = (int)(value / scale) * scale;
Run Code Online (Sandbox Code Playgroud)
或(根据jheriko的回答,适当地向上/向下舍入)
double scale = 0.01; // i.e. round to nearest one-hundreth
value = floor(value / scale + 0.5) * scale;
Run Code Online (Sandbox Code Playgroud)
对于后者:
cout << setprecision(2) << value;
Run Code Online (Sandbox Code Playgroud)
其中参数to setprecision()
是小数点后显示的最大位数.
你想限制变量是什么意思?值或其格式。对于值,您可以使用下限+除法。就像是:
double a = 0.12123
double b;
b = floor(a * 100) / 100
Run Code Online (Sandbox Code Playgroud)