将 NSDecimalNumber 转换为字符串
Posted
技术标签:
【中文标题】将 NSDecimalNumber 转换为字符串【英文标题】:Convert NSDecimalNumber to String 【发布时间】:2017-01-21 08:09:48 【问题描述】:如何将 NSDecimalNumber 值转换为字符串?
// Return type is NSDecimalNumber
var price = prod.minimumPrice // 10
// need a String
cell.priceLB.text = NSString(format:"%f", prod.minimumPrice) as String
【问题讨论】:
***.com/questions/36794489/… 【参考方案1】:您可以尝试其中一些选项。它们都应该返回 10。还要检查为什么需要创建 NSString 格式化数字并将其转换为 String。
"\(price)"
String(describing: price)
NSString(format: "%@", price)
【讨论】:
另外,price.description(withLocale: nil)
应该与NSDecimalNumber
一起使用,而不是NumberFormatter
。【参考方案2】:
NSDecimalValue 继承自 NSNumber。
NSNumber 有stringValue
属性
var stringValue: String get
The number object's value expressed as a human-readable string.
The string is created by invoking description(withLocale:) where locale is nil.
Documentation Source
【讨论】:
【参考方案3】:两种方式:
使用NumberFormatter
直接使用stringValue
属性
使用 NumberFormatter 的代码固定到小数点后两位:
斯威夫特 5
let number = NSDecimalNumber(string: "1.1")
print(number.stringValue) //"1.1"
let fmt = NumberFormatter()
fmt.numberStyle = .none;
fmt.minimumFractionDigits = 2;
fmt.minimumIntegerDigits = 1;
fmt.roundingMode = .halfUp;
let result = fmt.string(from: number) ?? "0.00"
//1.10
【讨论】:
【参考方案4】:试试这个
var price = prod.minimumPrice
cell.priceLB.text = "\(price)"
//or
cell.priceLB.text = String(describing: price)
【讨论】:
以上是关于将 NSDecimalNumber 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如果 NSDecimalNumber 大于 Uint64,如何将 NSDecimalNumber 转换为字节数组?
将 NSString 转换为 NSDecimalNumber
根据语言环境将 NSSting 转换为 NSDecimalNumber