【C++】小数四舍五入的实现

@【C++】小数四舍五入的实现

思路:
今天需要完成一个任意小数位数的四舍五入,在网上查了半天到处都是使用输出流实现的,虽然方便但感觉没必要,我就是想存一个数而已~。
c++已经提供取整数的四舍五入方法std::round,但没有小数的相关方法,那么思路就很明确了,将所需小数转换为保留小数位数的整数,再进行取整,再转换为小数即可。那如何转换呢,直接将小数与10的n次方(n 为小数位数)相乘即可,使用std::pow方法即可。最终再将数值转换回去
具体代码实现:

double num = 45.693; //可以是输入数字
int = 2;		//可以是输入数字
double numC = std::round(polarAng * std::pow(10, n)) * std::pow(10, -n);

如果想将对应数字转换为字符串的话,可使用截取对应长度字符串的方法实现:

std::wstring str = std::to_wstring(polarAng);
str = str.find(_T(".")) != -1 ? str.substr(0, str.find(_T(".")) + auprec + 1) : str;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值