我写了一个小程序,程序在不同的操作系统(xp,win7)上的工作方式不同,问题是程序读取了一些浮点数,比如2,686。
一个操作系统(win7)将其转换为float true,但在xp上它出错并打印2686。我如何理解操作系统使用哪个符号表示十进制数?
谢谢。
发布于 2010-04-15 19:26:35
string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;发布于 2010-04-15 19:26:44
这不取决于操作系统,而取决于每台PC上的(默认)语言设置。
如果您使用:double value = double.Parse(text);,则您使用的是用户配置的任何区域性。如果您知道输入是某种格式,请使用:
var ci = CultureInfo.GetCulture("nl-NL"); // dutch
double value = double.Parse(text, ci);每个转换的函数都有(1个或多个)重载来获取FormattingProvider (区域性)。
发布于 2010-04-15 19:27:05
使用带有double.Parse(string,System.Globalization.CultureInfo.CurrentCulture);)的用户当前区域性分析浮点数
https://stackoverflow.com/questions/2644769
复制相似问题