對有一個電商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;}產品需求的小數保留兩位,只入不舍,用上面的代碼可以輕松實現,希望可以幫到你!
新聞熱點
疑難解答