用字符串求和浮点数后保留小数

时间:2019-05-25 21:10:53

标签: swift string sum

当我尝试将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保持其小数点后两位?

1 个答案:

答案 0 :(得分:0)

您在这里混淆了字符串和浮点的概念。

这是错误的:

  

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)–在这里您可以定义要显示的小数位数。