@【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;