преобразование строки в тип double дает 0.0 вместо предполагаемого значения - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь преобразовать строку в тип double, используя Xcode. Я пробовал некоторые методы, которые я видел в стеке, но мои результаты не отображаются должным образом.

example

На изображении выше я Я пытаюсь добавить налог в размере 10% на кнопку Общая стоимость. в этом примере это 35 долларов. Таким образом, налог в размере 3,50 долл. США, а общая сумма составит 38,50 долл. США. Код, который я использую, позволяет мне получить двойное значение, но оно устанавливается только как 0,0 вместо того, что должно произойти. Я выбираю этот номер, который хранится в базе данных Firebase, и устанавливаю его как метку для моих денег.

  var moneyLabel: UILabel = {
         let label = UILabel()
         label.text = "$"
         label.font = UIFont.systemFont(ofSize: 20)
         label.numberOfLines = 0
         return label
     }()

func setupViews() {

    let post = notification?.poster
    let cost = post?.cost
    let priceString = cost != nil ? "$\(cost!)" : "N\\A"

        self.moneyLabel.text = priceString
        self.moneyLabel.font = UIFont.systemFont(ofSize: 20)
        self.moneyLabel.textColor = UIColor.black
        configureButtonToSetPrice()
}

    func configureButtonToSetPrice() {
    let priceString = "$\(moneyLabel)"
    let myFloat = (priceString as NSString).doubleValue
    let withTax = "\(myFloat * 0.10 + myFloat)"
    Pay.setTitle("Total Cost \(withTax)", for: .normal)
}

1 Ответ

0 голосов
/ 19 марта 2020

Добавление $ в priceString является проблемой. Из-за этого преобразование завершается неудачно и возвращает 0.0. Вот рабочий код.

func configureButtonToSetPrice() {
    var moneyLabel: String = "35"
    let myFloat = (moneyLabel as NSString).doubleValue
    let withTax = "\(myFloat * 0.10 + myFloat)"
    print("Total Cost $\(withTax)")
}

Надеюсь, это поможет.

...