Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 根据数字的值自动显示一定数量的小数点_Objective C_Nsstring - Fatal编程技术网

Objective c 根据数字的值自动显示一定数量的小数点

Objective c 根据数字的值自动显示一定数量的小数点,objective-c,nsstring,Objective C,Nsstring,我正在处理生成的报告的值有时是整数,有时是1位小数,有时是2位小数。我想找到一种方法,用尽可能少的小数点来显示这些数字。所以1总是1,而不是1.0或1.00,而2.5743是2.57。在iOS SDK中,有没有一种方法可以自动执行此斜杠操作?可以使用NSNumberFormatter,并将maximumFractionDigits设置为2 @import Foundation; int main(int argc, const char * argv[]) { @autorelease

我正在处理生成的报告的值有时是整数,有时是1位小数,有时是2位小数。我想找到一种方法,用尽可能少的小数点来显示这些数字。所以1总是1,而不是1.0或1.00,而2.5743是2.57。在iOS SDK中,有没有一种方法可以自动执行此斜杠操作?可以使用
NSNumberFormatter
,并将
maximumFractionDigits
设置为2

@import Foundation;

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
        formatter.maximumFractionDigits = 2;
        NSLog(@"%@", [formatter stringFromNumber:@(1)]);
        NSLog(@"%@", [formatter stringFromNumber:@(1.0)]);
        NSLog(@"%@", [formatter stringFromNumber:@(2.5743)]);
        NSLog(@"%@", [formatter stringFromNumber:@(2.5)]);
        NSLog(@"%@", [formatter stringFromNumber:@(2.7)]);
        NSLog(@"%@", [formatter stringFromNumber:@(2.699)]);
        NSLog(@"%@", [formatter stringFromNumber:@(2.71001)]);
    }
    return 0;
}
输出:

2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.002 commandLine[27474:1266926] 1
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.57
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.5
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.7
2016-02-04 13:46:36.003 commandLine[27474:1266926] 2.71

据我所知,没有可以使用的“删除所有尾随零”属性。我建议使用
NSRange
NSString.length
属性以及一对if语句来检查最后一个数字是否为“0”。