如何将输出格式化为 UILabel 作为货币?

Posted

技术标签:

【中文标题】如何将输出格式化为 UILabel 作为货币?【英文标题】:How to format output to UILabel as currency? 【发布时间】:2012-08-13 03:04:13 【问题描述】:

所以我正在开发一个小费计算器,作为我的第一个自助 ios 应用程序,我希望能够输出到 UILabel,它以货币格式显示账单。例如,用户按 1,标签显示 $0.01,然后用户输入 2,标签显示 $0.12,用户输入 3,标签显示 $1.23,依此类推。目前,我正在从 UIButton 获取输入并更新显示,它们上面有这样的数字: NSString *digit = sender.currentTitle; self.display.text = [self.display.text stringByAppendingString:digit];

我在这里阅读了几个关于数字格式的问题并尝试了解决方案,但无法得到任何工作,但大多数解决方案都是针对 UITextFields 的,所以我在想我获取输入的方式可能存在问题?任何帮助将不胜感激。

*澄清一下,我要的是速度。我有一个小数点按钮,并且显示带有 $ 符号,但我想摆脱小数点按钮,所以用户所要做的就是输入数字,甚至不用担心输入小数点。

【问题讨论】:

【参考方案1】:

这是一个想法,为什么不将数字存储为美分/便士 - 即货币的最小可能值。这样,如果用户按下另一个数字,您只需将现有数字乘以 10 并添加新数字。

一个例子:

用户按 1 => 数字之前是 0,所以新数字是 0 * 10 + 1 = 1 用户按 2 => 数字之前是 1,所以新数字是 1 * 10 + 2 = 12 用户按 3 => 数字之前是 12,所以新数字是 12 * 10 + 3 = 123

现在要显示这个,您只需将数字除以 100(或任何适合给定货币的值),然后在格式为 %0.01f 的字符串中使用结果

【讨论】:

感谢您的帮助,我现在可以使用它了。我知道它必须是这样的,但逻辑在逃避我,你的例子完全有道理。

以上是关于如何将输出格式化为 UILabel 作为货币?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用货币代码将数字格式化为货币?

如何将十进制属性格式化为货币?

如何使用正则表达式将数字格式化为货币

如何将 Double 格式化为货币 - Swift 3

如何使用 javascript/jquery 将数字格式化为印度货币(在数据表中)

如何将 SKProduct 价格格式化为 Swift 货币字符串?