簡體   English   中英

是否可以使用Double.Parse方法解析“-1。#IND”等

[英]Is it possible to parse “-1.#IND”, etc using Double.Parse method

嘗試對表示特殊值的“-1。#IND”和“INF”等System.Double.Parse(string)使用System.Double.Parse(string)方法會導致FormatException

是否有任何內置的.NET框架支持來解析這些?

不,唯一的非數字值double.Parse識別是double.Nan.ToString()double.PositiveInfinity.ToString()double.NegativeInfinity.ToString() (取決於Culture)返回的字符串值。

在你的情況下,我只會使用一個switch

double dblValue;
switch strValue
{
   case "-1.#IND":
      dblValue = double.Nan;
      break;
   case "INF":
      dblValue = double.Infinity;
      break;
   //... other casess
   default:
      dblValue = double.Parse(strValue);
      break;
}

NaN和其他值在指定的文化中進行解析(如果未指定文化,則為中性)。 如果你願意,你可以在這里玩。

如果你必須解析一些更特殊的東西,那么就是

public double MyParse(string text)
{
    if(text == "blablabla")
        return double.NaN;
    if(text.Contains("blablabla")) ...
    if(text.StartsWith(...
    return double.Parse(text);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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