c ++在十进制

时间:2017-09-20 16:30:20

标签: c++

将浮点数转换为字符串时,有一种简单的方法可以在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

1 个答案:

答案 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';
    }
}