2017-04-04 29 views
0

我想將字符串格式的值(如-14.3)轉換爲double。在C中將負數字符串十進制值轉換爲double#

我目前使用Convert.ToDouble()將正值轉換爲double值,但如果值爲負值,則返回意外結果。對於-14.3,它返回-143。因此,需要在這方面

private double getDouble(string Value) 
     { 
      double result = 0; 
      try 
      {    
       result = Convert.ToDouble(Value);     
      } 
      catch (Exception) 
      { 
       result = 0; 
      } 

      return result; 
     } 

    } 
+3

我懷疑這是因爲使用負值,但因爲逗號分隔符。在你現在的文化中,顯然還有另一個分隔符,它指示int部分的起始位置和小數位的結束位置。檢查這也檢查積極的'14.3'。這也應該去'143'。 – HimBromBeere

+0

你的代碼會幫助很多。 –

+0

看看這個參考請http://stackoverflow.com/questions/36277684/how-to-convert-a-negative-string-to-decimal-value –

回答

5

您需要使用NumberFormatInfo指定用於負號和小數點分隔符的字符一些幫助。

var format = new NumberFormatInfo(); 
format.NegativeSign = "-"; 
format.NumberDecimalSeparator = "."; 

var negativeNumber = Double.Parse("-14.3", format); // -14.3 
var positiveNumber = Double.Parse("352.6", format); // 352.6 

See the code in action on repl.it

相關問題