我有从String转换为Double的问题。转换它时会返回奇怪的值。我在我的大计算应用程序中有它,但我将其简化为内部游乐场。
var nineNine : String = "9.9"
var nineEight : String = "9.8"
var firstNumber = Double(nineNine) as! Double // Returns 9.9
var secondNumber = Double(nineEight) as! Double // Returns 9.8000000001
我期望输出9.8,它是9.8000000001 问题是第二个数字。任何想法如何解决它? :)
1 - 如果要将String转换为具有2个十进制值的Double,并将double值更改为2十进制。试试这个代码
/// String to Double
let yourValue = "9.8"
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 2
if let myInteger = Double(yourValue) {
let myNumber = NSNumber(value: myInteger)
let secondNumber = currencyFormatter.string(from: myNumber)
}
// result = 9.80