C/C++实现四舍五入保留指定小数位
number:传入的原始数
bits:小数点后保留的维数
double round(double number, unsigned int bits) {
LL integerPart = number;
number -= integerPart;
for (unsigned int i = 0; i < bits; ++i)
number *= 10;
number = (LL) (number + 0.5);
for (unsigned int i = 0; i < bits; ++i)
number /= 10;
return integerPart + number;
}
尴尬的是,最后发现printf会自动四舍五入