Objective C中的java.text.DecimalFormat等价物

时间:2014-09-04 09:24:17

标签: objective-c decimalformat

在java中,我有

String snumber = null;
String mask = "000000000000";
DecimalFormat df = new DecimalFormat(mask);
snumber = df.format(number);  //'number' is of type 'long' passed to a function
                              //which has this code in it

我不知道java中的DecimalFormat操作,因此很难编写等效的Obj C代码。

我怎样才能做到这一点?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于这种特殊情况,你可以在Objective-C中使用一些C风格的魔法:

long number = 123;
int desiredLength = 10;

NSString *format  = [NSString stringWithFormat:@"%%0%dd", desiredLength];
NSString *snumber = [NSString stringWithFormat:format, number];

结果是0000000123

此处的格式为%010d 10d表示您将有10个数字对齐到正确的数字。在开始时0会导致所有“空”点都将填充0。 如果number小于desiredLength,则将其格式化为原样(不带前导零)。

当然,上面的代码只有在你想要具有指定长度的数字并且用零填充的间隙时才有效 对于其他情况,您可以例如编写自己的自定义类,使用适当的printf / NSLog格式生成按照您的意愿格式化的字符串 在Objective-C中,您不必使用DecimalFormat“mask”,而是使用字符串格式。