【发布时间】:2017-11-10 13:13:34
【问题描述】:
我知道有人问过类似的问题,但我仍然无法找到解决方案。
我得到这样的双重价值。
let priceUsdInt = (price as NSString).doubleValue
我想将此值与 1.00 进行比较:
if priceUsdInt > 1.00 {
let priceUsdCur = priceUsdInt.currencyUS
finalPriceUsdCur = priceUsdCur
} else {
let priceUsdCur = priceUsdInt.currencyUS6
finalPriceUsdCur = priceUsdCur
}
这总是带来两位小数的结果。即使价值远低于 1.00。
基本上,我想要实现的是,如果值小于 1.00,则在转换为货币格式时将其显示到小数点后六位,即 0.123456,如果不是在其后仅显示两位小数,即 1.23。
感谢您的宝贵时间。
【问题讨论】:
-
不要使用 Double 作为货币。你应该使用十进制
-
我以前从未使用过十进制。您可以使用 Decimal 而不是 Double 来替换下面的答案吗?
-
就像我说的那样使用
string(for: Any)。您可以传递任何数字类型 -
stackoverflow.com/questions/24960621/… 更新到 Swift 4。现在它也扩展了 Decimal