C++ 11保留小数点的四舍五入方案

本文介绍了如何使用C++11中的std::round进行四舍五入,并提供了通过设置精度来保留特定小数位数的方法。同时,给出了一种利用stringstream类实现字符串转换的实用技巧。

当然,C++ 11提供各类型的std::round来四舍五入,但是没有一个能直接支持保留小数点位数的四舍五入方案。

 

所以需要通过setprecision来实现:

1 #include <iomanip>
2 #include <iostream>
3 std::cout << std::fixed << setprecision(5) << 5.324356;

 

以上就是保留5位小数并四舍五入,如果把std::fixed去掉,那么就是保留5位有效位数并四舍五入。如果觉得标准输出流处理不方便,可以用封装stringstream类来实现字符串的转换的四舍五入函数:

 1 #include <iomanip>
 2 #include <sstream>
 3 #include <iostream>
 4 
 5 static std::string roundAny(double r,int precision){
 6     std::stringstream buffer;
 7     buffer << std::fixed << setprecision(precision) << r;
 8     return buffer.str();
 9 }
10 
11 int main()
12 {
13    std::cout << roundAny(45.65658866,5) << std::endl; // C++11
14     std::cout << roundAny(21.6463,3)  << std::endl; // C++11
15    return 0;
16 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值