gpt4 book ai didi

c# - 为什么 System.Convert ("0") 在某些系统上抛出 FormatException?

转载 作者:行者123 更新时间:2023-11-30 19:21:04 24 4
gpt4 key购买 nike

代码是在 VS2008 中针对 .NET3.5 编译的。这在我的系统上不可重现。我怀疑某种本地化设置在起作用,但我对此了解不多。

所有其他有效数字似乎都可以正常工作。该错误用此代码说明(它导致相同的异常但不是生产代码):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string str = "";
do
{
str = Console.ReadLine();
Console.WriteLine("\t\"{0}\"", Convert.ToDouble(str));
}
while (str != null);
}
}
}

在我遇到的至少一个系统上,在命令行输入“0”会使应用程序崩溃。

来自用户 PC 的堆栈跟踪:

System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
at System.Double.Parse(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToDouble(String value)

最佳答案

我记得前一段时间的一个问题。 Parse() 方法受控制面板 + 区域和语言小程序中的用户覆盖的影响。 IIRC,它对“负号符号”设置特别敏感。请您的用户更正那里的设置。

引用问题is here .

关于c# - 为什么 System.Convert ("0") 在某些系统上抛出 FormatException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com