如何显示最多5位数的浮点数?

时间:2012-01-06 20:59:53

标签: objective-c floating-point number-formatting

我必须确定,零开始的时间从哪里开始削减数字,我想在'。'后面有5个数字。

我使用以下代码:

NSString* result = [[NSString stringWithFormat: @"%.5f", CGFloat] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @"0"]];

当我用'3.50300000'时,它给我'3.503',那没关系

但是当我使用'0.50300000'的代码时,如果需要'0.503',它会给我'.503'。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

NSString *result = [NSString stringWithFormat:@"%.5f", myFloat];
for (int i = result.length; [result characterAtIndex:i - 1] == '0'; --i)
    ;
result = [result substringToIndex:i];

答案 1 :(得分:1)

它是%N.Mf,其中N是字段的最小宽度,M是“。”之后的小数位数。如果您始终希望小数点前至少有一位数(可能为“0”),并且在指定%5.3f后至少需要3位数。

请注意,使用标准%格式无法将演示文稿限制为仅5位数,以便12.12345将打印为“12.12”,而1.12345将打印为“1.123”。

答案 2 :(得分:0)

不是最干净的;但它确实有效。

NSMutableString* newResult = @"0";
NString* result = [[NSString stringWithFormat: @"%.5f", CGFloat] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"0"]];
if ([[result componentsSeparatedByString:@"."] count] == 1)
{
    [newResult appendString:result];
}
NSLog(@"%@",newResult);