我有两个字符串类型值,我想将这两个值相减,然后将结果存储在第三个变量中。我如何将这两个字符串类型值相减。
let planPrice = plansArray?[i].spplan_price ?? "" let adjustPrice = plansArray?[i].adjustedAmount ?? "" let finalPrice = planPrice-adjustPrice
3pvhb19x1#
先转换字符串值,然后进行减法
let planPrice = Double(plansArray?[i].spplan_price ?? "") ?? 0.0 let adjustPrice = Double(plansArray?[i].adjustedAmount ?? "") ?? 0.0 let finalPrice = planPrice-adjustPrice
bhmjp9jg2#
你不能在弦上做数学运算。您必须先将它们转换为像Double这样的数值类型。
Double有一个接受字符串的“失败的初始值设定项”。如果字符串不能转换为双精度值,则返回nil。
我建议不要像Nabeel的回答那样使用强行打开 Package 。如果你这样做了,两个字符串中的任何一个都无法转换,你的应用程序就会崩溃。
相反,我会将零结果替换为0。以下代码将起作用:
let planPriceString = plansArray?[i].spplan_price ?? "" let adjustPriceString = plansArray?[i].adjustedAmount ?? "" let planPrce = Double(planPriceString) ?? 0.0 let adjustPrice = Double(adjustPriceString) ?? 0.0 let finalPrice = planPrice - adjustPrice
2条答案
按热度按时间3pvhb19x1#
先转换字符串值,然后进行减法
bhmjp9jg2#
你不能在弦上做数学运算。您必须先将它们转换为像Double这样的数值类型。
Double有一个接受字符串的“失败的初始值设定项”。如果字符串不能转换为双精度值,则返回nil。
我建议不要像Nabeel的回答那样使用强行打开 Package 。如果你这样做了,两个字符串中的任何一个都无法转换,你的应用程序就会崩溃。
相反,我会将零结果替换为0。以下代码将起作用: