我们说我有一个NSNumber
对象,其值为0.12345
。我想要的只是一个具有相同值的NSNumber
对象,但四舍五入到指定的有效位数,例如2,因此值如下所示:0.12
。
NSString
并返回,这是the answers suggest 有一种明显的方法可以解决这个问题吗?
答案 0 :(得分:2)
几乎不可能做到并保持所有约束。 NSNumber
没有舍入方法,因此您将不得不转换为其他内容。显而易见的路线是转换为双倍乘法,舍入和除法,但你说你宁愿不这样做。离开这条路线:
NSNumber *round(NSNumber *number, NSInteger places, NSRoundingMode mode) {
NSDecimal d = number.decimalValue;
NSDecimal rd;
NSDecimalRound(&rd, &d, places, mode);
return [NSDecimalNumber decimalNumberWithDecimal:rd];
}
答案 1 :(得分:-1)
另一种愚蠢的方式是:
int yourNum = 0.12345 * 100; yourNum现在是12。
浮动yourNumF = yourNum / 100.0;
我自己并不喜欢这种方法,但它符合您的要求。 :d