2017-03-07 57 views
-2

我想在控制檯應用程序中計算貨幣,所以我需要將字符串轉換爲十進制數。我可以Convert.ToInt32但不能Convert.ToDouble這裏是一個例子,用戶將輸入7位數作爲答案。當我可以製作控制檯應用程序時,我會用winform開發這個應用程序。任何幫助將非常感謝你。在C#中計算並將字符串轉換爲雙精度值

Console.WriteLine("Please enter the first rate"); 
     NGNRate = Convert.ToInt32(Console.ReadLine()); 

     Console.WriteLine("Please enter the Master rate"); 
     TM_USD_ZAR = Convert.ToInt32(Console.ReadLine()); 

     Console.WriteLine(NGNRate/TM_USD_ZAR); 
+1

[Double.Parse](https://msdn.microsoft.com/en-us/library/fd84bdyt(v = vs.110).aspx)。如果您在處理貨幣,我會而是使用'decimal'而不是'double' – Pikoh

+1

爲什麼不能使用'Convert.ToDouble()'? – waka

+1

嘗試使用','或'。'作爲小數點分隔符,同時轉換爲雙精度 – Fruchtzwerg

回答

1

嘗試使用Decimal.Parse,文檔here

 Console.WriteLine("Please enter the first rate"); 
     decimal NGNRate = Decimal.Parse(Console.ReadLine()); 

     Console.WriteLine("Please enter the Master rate"); 
     decimal TM_USD_ZAR = Convert.ToDecimal(Console.ReadLine()); 

     Console.WriteLine(NGNRate/TM_USD_ZAR); 
+0

謝謝@ berberck,這是合理的和有效的。我非常感激。 – Oxlade

1

Convert.ToDouble()取決於區域設置和小數點分隔符,如果你有.爲小數並輸入,轉換將不會成功

Console.WriteLine("Please enter the first rate"); 
var NGNRate = Convert.ToDouble(Console.ReadLine()); 

Console.WriteLine("Please enter the Master rate"); 
var TM_USD_ZAR = Convert.ToDouble(Console.ReadLine()); 

Console.WriteLine(NGNRate/TM_USD_ZAR); 
相關問題