Невозможно преобразовать очень маленькое строковое значение в десятичное с NumberFormatter Swift4
Я пытаюсь преобразовать строку "0.0004131955" в десятичную / двойную / валюту с NumberFormatter. Это производит ноль.
Как конвертировать это?
Мой пример кода, как показано ниже:
let formatter = NumberFormatter()
formatter.locale = Locale.current
formatter.numberStyle = .currency
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 15
formatter.usesGroupingSeparator = true
//number is nil here
if let number = formatter.number(from: "0.0004131955") {
let unitPrice = number.doubleValue
}
Что я делаю неправильно?
2 ответа
Удалить валюту из numberStyle - скопировать на игровую площадку для тестирования
import UIKit
import PlaygroundSupport
let formatter = NumberFormatter()
formatter.locale = Locale.current
//formatter.numberStyle = .currency
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 15
formatter.usesGroupingSeparator = true
let number: NSNumber? = formatter.number(from: "0.0004131955")
let unitPrice: Double? = number?.doubleValue