将浮点数转换为字符串时,有一种简单的方法可以在c ++中设置十进制后的非固定精度吗?
std :: setprecision(2)的作用是:
1.00000 -> 1
1.23456 -> 1.2
12.3456 -> 12
12.3000 -> 12.3
std :: fixed添加的内容是:
1.00000 -> 1.00
1.23456 -> 1.20
12.3456 -> 12.34
12.3000 -> 12.30
我想做的是:
1.00000 -> 1
1.23456 -> 1.23
12.3456 -> 12.34
12.3000 -> 12.3
答案 0 :(得分:1)
以下几轮到两位小数然后使用默认精度:
.bashrc*
产地:
#include <iostream>
#include <iomanip>
#include <cmath>
int main()
{
double vals[]{1.00000, 1.23456, 12.3456, 12.3000};
for(auto i : vals) {
i = std::round(i * 100) / 100;
std::cout << i << '\n';
}
}