类型“System.FormatException”的未处理的异常出现在mscorlib.dll其他信息:输入字符串的不正确的格式
问题描述:
//Declaring of "Total Statements"
double NetSalary, PensionFundPercentage, grossSalary, TaxableAmount, MonthlySalary, Allowance, Paye, Uif, MedicalAid, totalDeduction;
double PensionFund;
double Other = 0;
double.TryParse(txtOtherDeductions.Text, out Other);
//Convert Statements
Allowance = Convert.ToDouble(txtDeductions.Text);
PensionFund = Convert.ToDouble(txtPenFund.Text);
Paye = Convert.ToDouble(txtPayasUEarn.Text);
IM UNABLE TO CALCULTE工资构成危害引述的金额类型“System.FormatException”的未处理的异常出现在mscorlib.dll其他信息:输入字符串的不正确的格式
答
尝试本地化失败的位置。
取自msdn。
备注
使用ToDouble(String)方法相当于传递值到Double.Parse(String)方法。值通过使用当前线程文化的格式约定来解释。
如果您不想在转换失败时不处理异常,则可以调用Double.TryParse方法。它返回一个布尔值,指示转换是成功还是失败。
更多在这里阅读:https://msdn.microsoft.com/en-us/library/zh1hkw6k(v=vs.110).aspx
答
也许,请尝试使用的NumberFormatInfo同时呼吁Convert.ToDouble(...)。 我认为NumberFormat(或缺乏)它可能是一个原因。 例如,
txtPenFund.Text = "2.00,00"; // assuming a convenient example to get exception
double PensionFund;
PensionFund = Convert.ToDouble(txtPenFund.Text); // will throw format exception
如果我使用的NumberFormatInfo,我可以串翻番预期的转换。
NumberFormatInfo numFormat = new NumberFormatInfo();
numFormat.NumberDecimalSeparator = ",";
numFormat.NumberGroupSeparator = ".";
// somewhere in the UI, txtPenFund is set
txtPenFund.Text = "2.00,00";
double PensionFund;
PensionFund = Convert.ToDouble(txtPenFund.Text, numFormat);
错误非常明显,异常行为您提供所需的所有信息,txtPenFund.Text的值不能被解析为双精度值。 – Gusman
txtPenFund.Text conatins的值是什么?错误说它包含除了numaric – Ram
我不明白... –