簡體   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