Показывать только мое число с плавающей точкой с точностью до десятичного знака - Swift - PullRequest
0 голосов
/ 04 мая 2018

В основном я хочу удалить десятичные разряды для моего расчета сожженных калорий шага. Я знаю, что мне нужно что-то добавить к self.total2.text = ("\(String(bmi)) kcal"), но мне нужен небольшой совет по достижению этого.

 @IBAction func calc2(_ sender: Any) {
        if self.value111.text! != "" && self.value222.text! != "" {
            let textfieldInt = Float(value111.text!)
            let textfield2Int = Float(value222.text!)
            var bmi:Float = (((textfieldInt! * 2.204623) * 0.5) / 1500) * textfield2Int!
            self.total2.text = ("\(String(bmi)) kcal")
            let banner = StatusBarNotificationBanner(title: "Calculation Done! Submit to save. ✅", style: .warning)
            banner.show(queuePosition: .front)
        }
    }
    @IBAction func submit2(_ sender: Any) {
        let dict = (["kcal": self.total.text!, "date": self.getDate()])
        ref?.child("user").child(Auth.auth().currentUser!.uid).child("measurements").child("calculations").child("kcal").child("\(getDate())").setValue(dict)
        total.text = ""
        let banner = NotificationBanner(title: "Success, Step Calories Burnt has been saved today ⚖️", style: .success)
        banner.show(queuePosition: .front)
    }

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Используйте NumberFormatter (посмотрите здесь )

let bmi:Float = (((textfieldInt! * 2.204623) * 0.5) / 1500) * textfield2Int!

let formatter = NumberFormatter()

//Set the min and max number of digits to your liking, make them equal if you want an exact number of digits
formatter.minimumFractionDigits = 1
formatter.maximumFractionDigits = 3

self.total2.text = formatter.string(from: NSNumber(value: bmi)) + " kcal"
0 голосов
/ 04 мая 2018

Посмотрите на класс NumberFormatter, который позволяет вам точно настроить строковое представление числового значения, целочисленного или с плавающей запятой. Настройте NumberFormatter для вывода в нужном формате, затем вызовите string(from:), чтобы создать строку из вашего номера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...