当我尝试将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保持其小数点后两位?
答案 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)–在这里您可以定义要显示的小数位数。