使用Decimal 类中的TryParse方法
Dim consultAmt As Decimal
Dim foodAmt As Decimal
Decimal.TryParse(Session("ConsultingFeeAmount"), consultAmt))
Decimal.TryParse(Session("FoodAndBeverageAmount"), foodAmt))
Dim Res As Decimal = consultAmt + foodAmt
TotalAmount = Environment.NewLine & "Total Amount: " & _
consultAmt.ToString() & " " & foodAmt.ToString()
TotalAmount = "Total Amount " & Res.ToString
如果可以将字符串转换为小数,则 Decimal.TryParse 分析输入字符串并使用转换后的值设置第二个参数。如果不是,该方法不会引发任何异常,并且第二个参数更不用说为其默认值。
编辑
OP 说,在最初建议的更改之后,现在它有一条错误消息,上面写着:
从字符串“总金额:12.50 13.00”到类型“双”的转换无效
问题是当 Option Strict 为 OFF 时用于连接字符串的 + 运算符。在这种情况下,VB 编译器会混淆运算符的含义并尝试将两个数值相加。我真的建议使用 Option Strict On 和 Option Explicit On 因为这将迫使您的代码更加精确(没有类型的隐式转换)。当然,如果您进行此更改,则需要对您的应用程序进行广泛的重新测试您可以在此问题/答案链接中阅读有关此问题的信息