сохранять десятичную дробь после суммирования числа с плавающей точкой - PullRequest
0 голосов
/ 26 мая 2019

Когда я пытаюсь суммировать 2 десятичных числа с плавающей запятой с 2 ​​десятичными строками, я получаю взамен 1 десятичный знак.

let defaulPrice = Float(0.00) //2 decimal
let price = "100" //price in string

let floatPrice = Float(price)!/100
let tempPrice = String(format: "%.2f",floatPrice) //returning string "1.00" in 2 decimal

let finalPrice = defaultPrice + Float(tempPrice)! // 1.0 giving me back 1 decimal

Как я могу сделать так, чтобы finalPrice сохранял его 2 десятичные?

1 Ответ

0 голосов
/ 26 мая 2019

Вы смешиваете понятия струн и чисел здесь.

Это неправильно:

let defaulPrice = Float (0,00) // 2 десятичных числа

let defaulPrice = Float(0.00)
print(defaulPrice) // prints 0.0

Вы можете влиять только на количество дробицифры после разделителя (.) при преобразовании числа с плавающей точкой в ​​строку, которая будет своего рода печатным представлением.

Float(0.00000) == Float(0.0)
Float(0) == Float(0.0)

Все математические операции должны выполняться с числами.Затем преобразуйте результат в строку с нужным форматом (представлением) (используя NumberFormatter из вашего другого вопроса) - здесь вы можете указать, сколько цифр дроби вы хотите отобразить.

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