簡體   English   中英

C#中的Convert.ToDouble和Double.Parse

[英]Convert.ToDouble and Double.Parse in C#

我想問一下C#中的Convert.ToDoubleDouble.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將嘗試獲取不匹配的字符串並找到合適的值。 對於null0.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM