如何设置逗号后的3位数字
How to set 3 digits after comma
基本上我使用的是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来截断尾部数字。
相关文章:
- 输出错误,问题是找到总和5000位数字cpp
- 顺时针迭代旋转 3 位数字
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 使用 cin 时接受小数点后的 2 位数字
- 您可以使用 setfill() 来设置 fill 2 位数字吗?
- 斐波那契数列部分和的最后一位数字
- 我需要找到 N 位数字的总和
- 如何在不使用 C++ 中的数组或函数的情况下查找 N 位数字的所有排列
- 如何在C ++中替换整数的前两位数字?
- 将最多 50 位数字的 2 个数字相乘
- C++ 中 11 位数字的数字的乘积
- 使用 AVX2 指令左移 128 位数字
- 如何对两个 4 位数字进行乘法,将它们视为 C++ 中的多项式
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- 随机生成的输出中有多少位数字 1、2、3
- 列出所有 N 位数字,并带有 [字符串] 数字
- 如何生成九位数字,其中每个数字都与其他数字不同
- 以8位数字形式输入日期并以英文形式显示
- 如何正确取消设置64位数字中的位?
- 如何找到由公式计算的非常大的数字的最后一位数字?