Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数字转换为字符串,无需任何格式设置和使用“";”&引用;作为浮点分隔符_C#_Asp.net Core_Iis Express - Fatal编程技术网

C# 将数字转换为字符串,无需任何格式设置和使用“";”&引用;作为浮点分隔符

C# 将数字转换为字符串,无需任何格式设置和使用“";”&引用;作为浮点分隔符,c#,asp.net-core,iis-express,C#,Asp.net Core,Iis Express,当我执行12345.12345+”操作时,我会在我的windows计算机的IIS Express上获得“1234512345” 我需要将数字转换为其他程序可以解析的标准表示形式,即XXXX.XXXX-无空格,无逗号。如何做到这一点?这将产生所需的结果: Convert.ToString(12345.12345, System.Globalization.CultureInfo.InvariantCulture); 这将产生所需的结果: Convert.ToString(12345.12345,

当我执行
12345.12345+”
操作时,我会在我的windows计算机的IIS Express上获得
“1234512345”


我需要将数字转换为其他程序可以解析的标准表示形式,即
XXXX.XXXX
-无空格,无逗号。如何做到这一点?

这将产生所需的结果:

Convert.ToString(12345.12345, System.Globalization.CultureInfo.InvariantCulture);

这将产生所需的结果:

Convert.ToString(12345.12345, System.Globalization.CultureInfo.InvariantCulture);

Convert.ToString方法有一个重载,允许第二个参数是用于创建数字的字符串表示形式的CultureInfo。CultureInfo.InvariantCulture是包含的静态类。作为十进制分隔符。把你所有的东西放在一起

string myString = Convert.ToString(12345.12345, CultureInfo.InvariantCulture);

Convert.ToString方法有一个重载,允许第二个参数是用于创建数字的字符串表示形式的CultureInfo。CultureInfo.InvariantCulture是包含的静态类。作为十进制分隔符。把你所有的东西放在一起

string myString = Convert.ToString(12345.12345, CultureInfo.InvariantCulture);

double.ToString()
的功能应该是:

double number = 1234.1234;
string s = number.ToString(CultureInfo.InvariantCulture);

double.ToString()
的功能应该是:

double number = 1234.1234;
string s = number.ToString(CultureInfo.InvariantCulture);

也许您可以设置线程的区域性:

string lsOut = (1234.1234 + "").ToString();
Console.WriteLine(lsOut);

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.LCID);
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberGroupSeparator = "";

lsOut = (1234.1234 + "").ToString();
Console.WriteLine(lsOut);
输出为(如果先设置了
de de
):


也许您可以设置线程的区域性:

string lsOut = (1234.1234 + "").ToString();
Console.WriteLine(lsOut);

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.LCID);
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.NumberGroupSeparator = "";

lsOut = (1234.1234 + "").ToString();
Console.WriteLine(lsOut);
输出为(如果先设置了
de de
):



更改该应用程序/打印输出的区域性设置。无论设置如何,我都需要该软件包独立工作。我无法控制客户端的服务器,我不想引入另一个可能的故障点。您可以在代码中。。。。阅读格式和区域性设置您真的不应该对数字和字符串使用
+
运算符。只需将Convert.ToString与您的数字一起使用,并将CultureInfo.InvariantCulture作为第二个参数传递。更改该应用程序/打印输出的区域性设置。我需要该软件包独立工作,无论发生什么情况设置是。我无法控制客户端的服务器,我不想引入另一个可能的故障点。您可以在代码中。。。。阅读格式和区域性设置您真的不应该对数字和字符串使用
+
运算符。只需将Convert.ToString与您的数字一起使用,并将CultureInfo.InvariantCulture作为第二个参数传递。您是否在具有默认区域性的计算机上尝试过使用逗号作为浮点小数分隔符数字?可能在英文Windows上。此方法将遇到与OP完全相同的问题。是否在具有默认区域性的计算机上使用逗号作为浮点数的十进制分隔符进行了尝试?在英文Windows上,可能。此方法将遇到与OP完全相同的问题。请注意,它不能正确处理非常大\非常小的数字,因为对于他们来说,它将切换到科学符号。请注意,它不能正确处理非常大\非常小的数字,因为对于他们来说,它将切换到科学符号