草庐IT

InvariantCulture

全部标签

c# - 转换具有句点而不是逗号的 float ?

我有来自数据库(字符串)表的数据,其中包含文本和价格。我从数据中提取价格,但我的问题是有时我可以将其转换为float价格,有时则不能。我注意到了:Convert.ToSingle(m.Groups[1].Value);它有效,但并不总是有效,因为有时句号是问题所在(它需要一个逗号)。我能做什么?我尝试将“.”替换为“,”,但有时在其他PC上需要使用句号! 最佳答案 您遇到此问题是因为转换会检查您PC的语言。您将需要执行以下操作:Convert.ToSingle(m.Groups[1].Value,CultureInfo.Invari

c# - 异常消息是否应该全局化

我正在做一个项目,我刚刚开始做所有必要的工作来全局化应用程序。经常出现的一件事是是否全局化异常消息,但确保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。此外,这意味着异常消息将存储在可标记为特定于文化的资源文件中。所以问题是,异常消息应该全局化还是应该留在InvariantCulture或作者所在的国家;在我的例子中是en-US。 最佳答案 异常消息应该很少直接显示给用户。您需要考虑每个字符串的使用者。显然,用户界面中的文本片段需要国

c# - "8"的 int.Parse 失败。 int.Parse 总是需要 CultureInfo.InvariantCulture?

我们开发了一个既定的软件,它可以在所有已知的计算机上正常工作,除了一台。问题是解析以“8”开头的字符串。似乎字符串开头的“8”是保留字符。Parsing:int.Parse("8")->Exceptionmessage:Inputstringwasnotinacorrectformat.int.Parse("80")->0int.Parse("88")->8int.Parse("8100")->100CurrentCulture:sv-SECurrentUICulture:en-US使用int.Parse("8",CultureInfo.InvariantCulture)解决了这个问题

c# - String.Format 与 ToString 和使用 InvariantCulture

我在这里有点困惑。我应该用什么Console.WriteLine((val/1085).ToString("N"));VSConsole.WriteLine(String.Format("{0:N}",(val/1085)));另外,如何适应InvariantCulture?任何最佳实践:)? 最佳答案 其实我更喜欢第三种形式:Console.WriteLine("{0:N}",val/1085);Console.WriteLine可以为您完成String.Format。Console.WriteLine不允许您提供文化。如果那是您

c# - 为什么逗号在具有 InvariantCulture 的 int.Parse() 和 decimal.Parse() 中表现不同?

为什么:decimal.Parse("1,2,3,45",CultureInfo.InvariantCulture)返回小数12345,然而:int.Parse("1,2,3,45",CultureInfo.InvariantCulture)抛出异常?我希望逗号在相同的文化中得到相同的对待。如果decimal.Parse返回12345,为什么int.Parse不返回12345? 最佳答案 SeeNumberStylesint的默认NumberStyles是Integer:IntegerIndicatesthattheAllowLea

c# - InvariantCulture 中使用的日期时间格式

我必须在Javascript中预先验证一个在C#中将成为DateTime的字符串。DateTime解析使用InvariantCulture。有人知道为InvariantCulture定义的DateTime格式吗? 最佳答案 编译信息来自standarddateandtimeformatstrings:模式例子短日期模式(“d”)MM/dd/yyyy长日期模式(“D”)dddd,ddMMMMyyyy完整日期短时间(“f”)dddd,ddMMMMyyyyHH:mm长时间完整日期(“F”)dddd,ddMMMMyyyyHH:mm:ss通用

c# - Culture-Invariant 区分大小写的字符串比较在不同的机器上返回不同的结果

我发现我的机器和构建服务器上的测试结果不同。我设法找到了不同的单行。这是一个字符串比较。这两个字符串的第一个字符不同。下面的测试在我的本地机器上通过了,但在构建机器上失败了。[TestClass]publicclassTests{[TestMethod]publicvoidStrings(){Assert.IsFalse(0==string.Compare("Term’s","term’s",false,CultureInfo.InvariantCulture));}}我还尝试将其更改为string.Equals:string.Equals("Term’s","term’s",Stri

c# - 如何将日期格式从 DD/MM/YYYY 或 MM/DD/YYYY 更改为 YYYY-MM-DD?

我需要使用C#更改日期字符串的格式来自:“06/16/2010”或“16/06/2010”至:“2010-06-16”你能帮我实现这个吗谢谢 最佳答案 如果您已经将它作为DateTime,请使用:stringx=dt.ToString("yyyy-MM-dd");参见MSDNdocumentation更多细节。您可以指定CultureInfo.InvariantCulture以强制使用西方数字等。如果您使用MMM表示月份name和类似的东西,这一点就更重要了,但它不会把它说清楚是个坏主意:stringx=dt.ToString("y

c++ - boost::lexical_cast<> 的语言环境不变保证

我正在使用boost::lexical_cast(double)用于将double转换为字符串,生成JSON序列化字节流,即(在远程端)由.NET解析。我能够强制.NET使用InvariantCulture用于解析,从而在每种可能的语言上返回可预测的结果。但是,我无法在boost::lexical_cast中找到此保证文档。我试了一下,对于不同的区域设置,它的工作方式相同。但是,我不能仅从几个测试中确定,我是否遗漏了文档中的某些内容,或者根本无法保证这一点,我必须使用其他东西吗?编辑:我发现了一个问题。std::locale::global(std::locale("Czech"));

c# - 使用 System.Globalization.CultureInfo.InvariantCulture 将字符串转换为日期时间

我有以下代码将字符串转换为日期时间..stringupdateDateTime="1398398552695";doubletemp=Double.Parse(updateDateTime);TimeSpansp=TimeSpan.FromMilliseconds(temp);DateTimedt=newDateTime(1970,1,1).Add(sp);updateDateTime=dt.ToString("yyyy-MM-ddHH':'mm':'ss");//finaldatetimestringtt=dt.ToString("yyyy-MM-ddHH':'mm':'ss");D
12