类型“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); 

enter image description here IM UNABLE TO CALCULTE工资构成危害引述的金额类型“System.FormatException”的未处理的异常出现在mscorlib.dll其他信息:输入字符串的不正确的格式

+0

错误非常明显,异常行为您提供所需的所有信息,txtPenFund.Text的值不能被解析为双精度值。 – Gusman

+0

txtPenFund.Text conatins的值是什么?错误说它包含除了numaric – Ram

+0

我不明白... –

尝试本地化失败的位置。

取自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);