2017-06-08 68 views
0
 //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

我不明白... –

回答

0

嘗試本地化失敗的位置。

取自msdn。

備註

使用ToDouble(String)方法相當於傳遞值到Double.Parse(String)方法。值通過使用當前線程文化的格式約定來解釋。

如果您不想在轉換失敗時不處理異常,則可以調用Double.TryParse方法。它返回一個布爾值,指示轉換是成功還是失敗。

更多在這裏閱讀:https://msdn.microsoft.com/en-us/library/zh1hkw6k(v=vs.110).aspx

0

也許,請嘗試使用的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); 
相關問題