对有一个电商APP来说,显示商品价格是最寻常不过了,但是有一个问题,就是小数显示时精准度的问题,为此,苹果官方有一个API可以解决此问题。
NSDecimalNumber,可以设置精准度,其有几个属性可以设置,如下:
NSRoundPlain, // Round up on a tie //貌似取整 NSRoundDown, // Always down == truncate //只舍不入NSRoundUp, // Always up // 只入不舍NSRoundBankers // on a tie round so last digit is even 貌似四舍五入下面给出一个本人项目中用到代码范例:
/** * @brief 截取指定小数位的值 * * @param PRice 需要转化的数据 * @param position 有效小数位 * * @return 截取后数据 */+ (NSDecimalNumber *)notRounding:(NSString *)price{ NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundUp scale:0 raiSEOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:YES]; //固定12期,先计算出每期金额 NSDecimalNumber* priceNum=[NSDecimalNumber decimalNumberWithString:price]; NSDecimalNumber* formatPrice=[priceNum decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"12"] withBehavior:roundingBehavior]; return formatPrice;}产品需求的小数保留两位,只入不舍,用上面的代码可以轻松实现,希望可以帮到你!
新闻热点
疑难解答