如何设置逗号后的3位数字

How to set 3 digits after comma

本文关键字:3位 数字 何设置 设置      更新时间:2023-10-16

基本上我使用的是setprecision(3),但这是对最后一个数字的四舍五入,例如,如果我们喜欢这样的话-

double x = 5;
x = (double) x / 3;
cout << fixed << setprecision(3) << x << endl;

它将显示1.667

但是,如果我们用计算器计算,它会显示-1.666666666…67

所以,基本上,我的意思是,有没有机会在文件中输出,只输出逗号后的前3位数字,而不将其四舍五入?

1.666666666…67四舍五入到小数点后三位为1.667

如果您只想截断输出,然后将其发送到带有strstream的字符串,请在字符串中搜索"."的位置,并将字符串截断到之外的3个位置

或者,如果您只是想始终向下取整,请将结果乘以1000,使用floor()向下取整然后再除以1000.0。

转换为long截断分数部分:

int main()
{
  double x;
  x=  -100.666666666666666;
  x = static_cast<double> ( static_cast<long>(x * 1000) )/1000;
  cout << x << endl;
}

我们可以使用cmath中的floor(double),这是更可取的,但它也可以将负片舍入为负片。

cout << fixed << setprecision(3) << double(int(x*1000))/1000 << endl;

我们使用CCD_ 3来截断尾部数字。