如何在double中显示前导零

时间:2013-06-28 10:19:04

标签: objective-c floating-point floating-accuracy

我需要让NSNumber只显示4个小数点。这部分代码是有效的,但它输出的结果没有前导零。

double resultRoundToDecimal = [result doubleValue];
    NSNumberFormatter *resultFormatter = [[NSNumberFormatter alloc] init];
    [resultFormatter setRoundingMode:NSNumberFormatterRoundHalfUp];
    [resultFormatter setMaximumFractionDigits:4];
    resultData = [resultFormatter stringFromNumber:[NSNumber numberWithDouble:resultRoundToDecimal]];

例如: 1/3 = .3333

我想: 1/3 = 0.3333

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您也可以选择使用字符串格式化程序,如下所示

float val=1./3;

NSString *resultData=[NSString stringWithFormat:@"%0.4f",val];

NSLog(@"Result = %@",resultData);

答案 1 :(得分:0)

前置0或使用数字格式化器。

NSString *printStr = @"0";
printStr = [NSString stringByAppendingString: resultData];

否则,您可以使用数字格式化程序或类似的东西。如果你只是输出一个字符串,为什么不这样做呢?

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNumberFormatter_Class/Reference/Reference.html