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會自動四捨五入