2 vikeytoy vikeyToy 于 2012.11.26 10:28 提问

检测NSNumber后面的数字是不是.00

用到一个方法,创建NSNumber数字类似钱形式的。

 + (NSString *)formatShortPayment: (NSNumber *)payment {

    if (![payment isEqual: [NSNull null]]) {
        NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
        [formatter setLocale: locale];
        [formatter setNumberStyle: NSNumberFormatterCurrencyStyle];
        if ([payment doubleValue] >= 1000.0) {
            [formatter setMaximumFractionDigits: 0];
            payment = [NSNumber numberWithFloat:([payment floatValue] / 1000)];
        }
        else {   
        }
        return [formatter stringFromNumber: payment];

    }

    return nil;
}

如果数值小于1000.0要检测小数点后面的数字是不是.00,如果是就移除.00

比如:

25.00 => 25
13.29 => 13.29

不知道这个功能如何实现?多谢指点。

1个回答

lanhailvcao
lanhailvcao   2012.11.26 10:54
已采纳
if (([payment doubleValue] - floor([payment doubleValue]) < 0.01) {
    [formatter setMaximumFractionDigits: 0];
}

这样就行了。

vikeyToy
vikeyToy 运行正常,谢谢
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS 数字的格式化(NSNumber格式化)
在开发的过程中,我们会遇到这样的问题,在金额没三位中间会加一个逗号的那种格式。例如:123456变成123,456的情况。 数字的格式化的代码: NSString *numString = [NSString stringWithFormat:@"%@",@"12345678.89"]; NSNumberFormatter *formatter = [[NSNumberFormatt
ios NSString字符串如何转为NSNumber(已解决)
ios NSString字符串如何转为NSNumber
objective-c 基础语法学习--(1)NSNumber类
///NSNumber * intNum = [NSNumber numberWithInt:10]; //NSNumber * boolNum = [NSNumber numberWithBool:YES]; int num=10; NSNumber *intNum = [NSNumber numberWithInt:num]; BOOL isBool=YES; NSNumbe
NSString 和 NSNumber 的相互转化
通常有后台请求返回的数据,解析后会有字符串,也可能有数字或bool,我们用模型接收的时候,可能类型不匹配,比如解析得到@”123.456”但我们需要的是@123.456,这就需要转化类型。1、 NSString 转 NSNumber NSString *str = @"120";NSNumberFormatter *numberFormatter = [[NSNumberFormatter al
iphone 开发学习基础NSNumber
object-c基础语法NSNumber, 适合初学者,主要学习NSNumber的设置,NSNumber中可以存储任何的数字类型,以及BOOL和char等
JAVA_检测字符串是不是一串数字的几个方法
public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 这是利用JAVA自带的一个函数,把字符串拆分
NSNumber比较大小
比较NSNumber的大小 -(BOOL) isEqualToNumber: - (NSComparisonResult)compare:(NSNumber *)otherNumber; 1 .概述 既然NSNumber都是数值型的封装,那么它们之间可以比较大小 不可使用比较运算符来比较,如,不可用>, <…..2 .NSNumber的实例方法: (BOOL)isEqualToNumber:
Objective-c中数字型字符串转换NSNumber的三种方法
在MAC OS/iOS 开发时,我们会遇到这类情况。如何将输入的符合数字格式的字符串,转换成NSNumber 类型的对象。 我首先写了这个方法:   C代码   id result;    NSString * ss;        ss=@"124";        result=[NSNumber numberWithFloat:[ss floatValue]];   
int与NSNumber之间的相互转化,以及转化问题对数值比较的影响
前提:NSNumber *pages = @“1”与int page = 1进行大小比较 if(page 而是应该 [ self.page intValue ]; int转化为NSNumber则是:[NSNumber numberWithInt:int]; 基础呀。。。。
NSNumber 类型判断
//        NSNumber* iValue = [NSNumber numberWithLongLong:10]; //        if(strcmp([iValue objCType],@encode(int8_t)) == 0){ //            NSLog(@"test char"); //        }else if(strcmp([iValue obj