![](/img/trans.png)
[英]Difference between Convert.ToDouble and double.Parse in correlation with InvariantCulture
[英]Convert.ToDouble and Double.Parse in C#
我想問一下C#中的Convert.ToDouble
和Double.Parse
當我寫這段代碼時,沒關系
static void Main(string[] args)
{
double red;
Console.Write("Red = ");
red = Convert.ToDouble(Console.ReadLine());
}
但如果我試試
static void Main(string[] args)
{
double red;
Console.Write("Red = ");
red = Double.Parse(Console.ReadLine());
}
我對ReSharper 'Possible 'null' assignment to entity marked with 'NotNull' attribute'
感到謹慎
如何解決?
double
是一個不能為null
的值類型 。
double.Parse
將嘗試將string
解析為double
。 它不會嘗試強制不匹配的值,如null
。
Convert.ToDouble
將嘗試獲取不匹配的字符串並找到合適的值。 對於null
為0.0
。
要檢查sting是否可以直接解析,請嘗試使用帶有適當重載的double.TryParse
。
例如:
double red;
Console.Write("Red = ");
var input = Console.ReadLine();
if(!double.TryParse(input, out red))
{
Console.WriteLine("You have not entered an appropriate value!");
}
這將嘗試使用當前Culture和默認NumberStyles解析double。
Convert.ToDouble
是實用方法。
Convert.ToDouble
文檔說明:
返回值類型:System.Double等價於值的雙精度浮點數,如果value為null,則為零。
如果傳遞null, Double.Parse
將拋出ArgumentNullException
,因為Double
不能用null
構造。 這里解釋: http : //msdn.microsoft.com/en-us/library/fd84bdyt.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.