好长时间没有写文章了,今天放假,趁着有空,给大家分享个小工具类
一般我们写电商类型App的时候,都有价格小数点后两位的处理,之前我是写的fload类型取 .2f ,后来测试,会有精度问题,所以总结了下面的方法。
我写了一个字符串的扩展,方法如下:
///字符串小数点后两位
- (NSString *)geTwoDecimalString {
NSArray *arr = [self componentsSeparatedByString:@"."];
if (arr.count == 1) {
return [NSString stringWithFormat:@"%@.00",self];
}
if (arr.count > 2) {
return self;
}
NSString *str = [arr lastObject];
if (str.length == 1) {
return [NSString stringWithFormat:@"%@0",self];
}
else if (str.length == 2) {
return self;
}
else {
NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *aDN = [[NSDecimalNumber alloc] initWithString:self];
NSDecimalNumber *resultDN = [aDN decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
return [NSString stringWithFormat:@"%@",resultDN];
}
}
欢迎大家指教!!!
网友评论