有人知道我如何将NSNumber截断或舍入到小数点后一位?
例如,我有一个1.45654
的NSNumber,我想得到1.4
或1.5
吗?
我尝试使用trunc:
和mgl_round:
(来自mapbox),但它们始终返回整数。
这是一个小片段。
let depthTruncated = NSExpression(forFunction: "trunc:", arguments: [depthValue])
答案 0 :(得分:0)
使用round
方法舍入小数位。
let number: NSNumber = 1.45654
let roundedNumber = round(Double(truncating: number) * 10)/10
print(roundedNumber)
答案 1 :(得分:0)
还有其他几个选择:
是否需要将其精确舍入到小数点后一位?如果是这样,您可以使用Decimal
。
var number = NSNumber(1.45654)
var decimalValue = number.decimalValue
var result: Decimal = 0
NSDecimalRound(&result, &decimalValue, 1, .plain)
print(result)
但是,如果仅要将其显示到小数点后一位,则可以使用NumberFormatter
。
let number = NSNumber(1.45654)
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 1
guard let result = formatter.string(for: number) else { return }
print(result)