我想在C#中将小数点更改为另一个字符。我有一个double
变量value
double value;
当我使用命令时:
Console.WriteLine(value.ToString()); // output is 1,25
我知道我能做到:
Console.WriteLine(value.ToString(
CultureInfo.CreateSpecificCulture("en-GB"))); // output is 1.25
但我不太喜欢它,因为它太长了,而且我的程序经常需要它。
有没有一个更短的版本,设置“小数点”真的作为点,而不是逗号,因为是在我的文化是常见的?
7条答案
按热度按时间xqkwcwgp1#
一些快捷方式是创建一个NumberFormatInfo类,将其NumberDecimalSeparator属性设置为.“”,并在需要时将该类用作ToString()方法的参数。
92dk7w1h2#
是否创建扩展方法?
ih99xse13#
也许我误解了您问题的意图,如果我说错了请纠正我,但是您不能一次性全局应用区域性设置,然后就不用担心自定义每个write语句吗?
nc1teljy4#
您可以通过更改用于显示数字的区域性来更改小数点分隔符。但请注意,这将更改有关数字的所有其他内容(例如,分组分隔符、分组大小、小数位数)。从您的问题来看,您默认使用的区域性使用逗号作为小数点分隔符。
若要仅更改***小数分隔符而不更改区域性,可以修改当前区域性的
NumberFormatInfo
的NumberDecimalSeparator
属性。这将修改线程的当前区域性。所有输出现在都将被更改,这意味着您可以只使用
value.ToString()
来输出您想要的格式,而不必担心每次输出数字时都要更改区域性。(Note neutral区域性不能更改其小数分隔符。)
snvhrwxg5#
v2g6jxz66#
如果您有ASP.NET Web应用程序,还可以在
web.config
中对其进行设置,以便在整个Web应用程序中保持相同des4xlb07#
一个更简单但不那么优雅的解决方案:
很短并且有效,但您必须在“Replace”函数的第一个参数中指定当前分隔符。这不是一个好主意,运行这个解决方案的软件,可以运行在不同的语言系统,是不是那么灵活。