Jon*_*eet 49
decimal 本身没有格式 - 它既没有逗号也没有点.
这是当你将它转换为一个字符串,你会得到它.您可以通过指定不变文化来确保获得一个点:
using System;
using System.Globalization;
using System.Threading;
class Test
{
static void Main()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
decimal d = 5.50m;
string withComma = d.ToString();
string withDot = d.ToString(CultureInfo.InvariantCulture);
Console.WriteLine(withComma);
Console.WriteLine(withDot);
}
}
Run Code Online (Sandbox Code Playgroud)
正如Jon Skeet所解释的那样,您应该指定用于格式化的文化string:
var str = GetNumber().ToString(System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
始终使用ToString指定文化的重载是一种很好的做法.否则,.NET使用当前线程Culture,strings根据PC... 的语言环境,它将写入不同的输出.