Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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 NSNumberformatter将零添加到小数部分_Objective C_Number Formatting - Fatal编程技术网

Objective c NSNumberformatter将零添加到小数部分

Objective c NSNumberformatter将零添加到小数部分,objective-c,number-formatting,Objective C,Number Formatting,我正在寻找显示以下内容的方法: “20000.5”=>“20000.50” “20000”=>“20000.00” 所以基本上总是两个小数,如果只有一个小数,就在小数部分加上一个额外的零 最好的方法是什么?我知道我可以使用NSNumberformatter,但我一直得到“20000.9”=>“20000.9”而不是“20000.9”=>“20000.90” 下面是代码,我还没有它不工作 NSNumberFormatter *numberFormatter2 = [[NSNumberForma

我正在寻找显示以下内容的方法:

  • “20000.5”=>“20000.50”
  • “20000”=>“20000.00”
所以基本上总是两个小数,如果只有一个小数,就在小数部分加上一个额外的零

最好的方法是什么?我知道我可以使用NSNumberformatter,但我一直得到“20000.9”=>“20000.9”而不是“20000.9”=>“20000.90”

下面是代码,我还没有它不工作

NSNumberFormatter *numberFormatter2 = [[NSNumberFormatter alloc] init];
[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setUsesGroupingSeparator:YES];
[numberFormatter2 setDecimalSeparator:@"."];
[numberFormatter2 setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter2 setMaximumFractionDigits:2];
NSString *theString = [numberFormatter2 stringFromNumber:[NSNumber numberWithDouble:1008977.2]];
NSLog(@"Number is: %@", theString);

---Number is: 1,008,977.2
  • 我希望它是1008977.20

您只需添加以下内容:

[numberFormatter2 setMinimumFractionDigits:2];
这将为您提供所需的输出

但请删除以下行:

[numberFormatter2 setGroupingSeparator:@","];
[numberFormatter2 setGroupingSize:3];
[numberFormatter2 setDecimalSeparator:@"."];

这种固定格式会让许多用户感到困惑。

以下代码是错误的

[numberFormatter2 setMaximumFractionDigits:2]

将代码更改为以下示例

[numberFormatter2 setMinimumFractionDigits:2]


这意味着您的输出结果可以包含两个以上的十进制数。

您看过NSNumberFormatter的文档了吗?你写了什么代码?您将
minimumFractionDigits
设置为什么?我将其设置为2,但不起作用。您已设置了“最大”分数位数。Not minimum.FYI-您的数字格式将使世界各地的许多用户感到困惑。许多人期望的格式与您在这里强制使用的格式非常不同。避免设置特定的分组和小数分隔符。避免设置特定的分组大小。你唯一应该设置的是分数位数的最小值和最大值。是的,它使用最小值。非常感谢!