ios - 如何获取带小数的格式数字(XCode)

标签 ios iphone xcode decimal number-formatting

我的目标是为 iPhone 创建一个客户计算器应用程序,我正在使用 Xcode 编写我的应用程序。我找不到解决方案的问题是如何在不切换为科学记数法的情况下格式化使用小数(带有额外零)的数字

我试过...

buttonScreen.text = [NSString stringWithFormat:@"%0.f",currentNumber];

%0.f 格式总是四舍五入,所以如果用户输入“4.23”,它会显示“4”

%f 将数字格式化为 6 位小数(输入“5”显示为“5.000000”),但我不想在数字末尾显示额外的零。

%10.4f 是我在阅读中找到解决方案时看到的其他内容,但我的问题是我不知道答案中有多少位小数,我可能需要零位小数或 10 位小数,具体取决于数字。

以下是我想显示的数字示例(不带逗号):大于 6 位的整数,大于 6 位的小数。

123,456,789;
0.123456789;
12345.6789;
-123,456,789;
-0.23456789;
-12345.6789;

*这是对我之前的问题“如何在没有科学记数法或小数的情况下格式化数字”的精神转贴,我措辞不当,因为我打算写“不必要的(额外的零)”,但在重读我的帖子后清楚地证明了我的无能在我的问题中随时传达这一点。

最佳答案

使用 NSNumberFormatter class .

首先定义格式化程序:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

然后您可以定义格式化程序的各种属性:

formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.maximumIntigerDigits = 3;
formatter.minimumFractionDigits = 3;
formatter.maximumFractionDigits = 8;
formatter.usesSignificantDigits = NO;
formatter.usesGroupingSeparator = YES;
formatter.groupingSeparator = @",";
formatter.decimalSeparator = @".";
....

您将数字格式化为这样的字符串:

NSString *formattedNumber = [formatter stringFromNumber:num];

玩转它。它非常简单,但可能需要一些工作才能获得您想要的外观。

关于ios - 如何获取带小数的格式数字(XCode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14483032/

相关文章:

iphone - UIImagepicker 不显示在 iPad Storyboard中

iphone - UISegmentedControl 和添加目标

xcode - 是否可以将图像添加到 Swift 中的代码注释中?

ios - SwiftUI 中的 Admob 原生广告

ios - UITableView 最初不加载数据

iPhone-应用程序崩溃使用 SKPSMTPMessage

ios - 如何在 Xcode 的 Resources 文件夹中捆绑非版本控制的图像?

ios - 应用程序更新后显示的旧界面

ios - 从 UITableView - Swift 连续编辑/更改数据的过程是什么

ios - 导航栏中的标签,可能和 "allowed"?