[英]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.