用逗号(,)转换c#decimal toString()

时间:2015-06-17 10:38:09

标签: c# type-conversion tostring

c#decimal.toString()转换问题

示例:我有一个十进制值(.1) 当我使用toString()将十进制转换为字符串时,它返回(0,10)。而不是。(DOT)它返回,(COMMA)。

5 个答案:

答案 0 :(得分:6)

我认为这与您的操作系统设置的文化/区域有关。您可以通过在.ToString()方法中添加格式重载来修复/更改字符串的解析方式。

例如

decimalValue.ToString(CultureInfo.InvariantCulture);

答案 1 :(得分:2)

为了实现这一点,线程的当前文化必须是使用逗号分隔符而不是点的文化。

您可以使用带有文化的ToString的重载按ToString进行更改:

var withDot = myVal.ToString(CultureInfo.InvariantCulture);

或者,您可以在执行对ToString()的任何调用之前设置线程的文化,为整个主题更改此内容:

var ci = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

var first = myVal.ToString();
var second = anotherVal.ToString();

答案 2 :(得分:2)

您必须定义格式,它将取决于您的本地设置或 使用类似的东西定义格式

decimal.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
欢呼

答案 3 :(得分:0)

然后,您当前的culture NumberDecimalSeparator,而不是.

如果不需要,可以使用CultureInfo.InvariantCulture强制点:

decimal num = 0.1m;
string numWithDotAsSeparator = num.ToString(CultureInfo.InvariantCulture);

NumberFormatInfo.InvariantInfo

string numWithDotAsSeparator = num.ToString(NumberFormatInfo.InvariantInfo)

答案 4 :(得分:0)

对于逗号(,)

尝试一下:

decimalValue.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("tr-tr"))