c# - 如何在 C# 中不区分大小写地解析 float 和 double (以覆盖 "infinity"等)?

标签 c# .net parsing floating-point floating-point-conversion

在我的语言环境中,double.Parse("Infinity") 返回 double.PositiveInfinity,但 double.Parse("infinity")抛出System.FormatException。对于负无穷大和 NaN 也会发生类似的情况。

显然,我可以在调用 double.Parse() 之前使用 CultureInfo.CurrentCulture.NumberFormat.PositiveInfinitySymbol.Equals() 进行不区分大小写的比较来检查匹配情况 (对于负无穷大和 NaN 也同样如此)。然而,我希望有更优雅的东西。

最佳答案

除了 TryParse() 之外,我没有看到太多选择。 ,并且在失败时,对三个特殊 token 进行特殊处理,如 Number.ParseDouble() 中所示。和 double.TryParse() 。我会在之后而不是之前进行检查,因为在大多数情况下,这种情况不会发生。

关于c# - 如何在 C# 中不区分大小写地解析 float 和 double (以覆盖 "infinity"等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25365263/

相关文章:

c# - 在 C# 类库中使用 IConfiguration

c# - 如何从我的 C# 代码进入 SQL Server 存储过程?

c# - PDF 中动态大小的多行文本框字段

python - 如何从 .t​​xt 文件中获取某个单词的开头和结尾

parsing - HTML Agility Pack xPath问题

c# - 使用不带参数的 "params"关键字使用反射调用方法

c# - 设置文件创建日期的最佳方法,通过文件流下载

c# - 如何确定远程处理 channel 是否已注册

c# - 为什么在 MonoDevelop 中 ShowDialog 会崩溃?

iphone - 使用 GDataXMLDocument 解析 xml 属性