繁体   English   中英

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

[英]c# decimal toString() conversion with comma(,)

c# decimal.toString()转换问题

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

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

例如

decimalValue.ToString(CultureInfo.InvariantCulture);

要做到这一点,线程的当前文化必须是使用逗号分隔符而不是点的文化。

您可以使用带有文化的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();

你必须定义格式,它将取决于你的本地设置或定义格式,使用这样的东西

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

干杯

然后你当前的文化NumberDecimalSeparator ,而不是.

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

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

NumberFormatInfo.InvariantInfo

string numWithDotAsSeparator = num.ToString(NumberFormatInfo.InvariantInfo)

对于逗号(,)

试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM