我有一个处理货币的应用程序。出于显示目的,我使用了漂亮的VB FormatCurrency函数,该函数将根据操作系统的区域设置进行格式化。所以,如果在法国你可能得到123,45,而在美国你会得到123.45。
要对这些金额执行计算,我使用CDec()转换为十进制。
我的问题是,当我使用toString()将Decimal转换为String时,它会根据当前设置的区域进行格式化。我需要能够始终将小数转换为美国的字符串表示形式,即带小数点。
我以为我可以做类似的事情: 的ToString( “#0.00”)
答案 0 :(得分:2)
尝试:
value.ToString("C", CultureInfo.InvariantCulture)
此处有更多信息:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
“C”是为货币格式化,但您可以使用许多不同的格式字符串。如果你真的希望它格式化为“美国”而不是不变文化,你可以这样做:
value.ToString("C", CultureInfo.CreateSpecificCulture("en-US"))
答案 1 :(得分:2)
此
Dim dec As Decimal = 1.25D
Dim s As String
s = dec.ToString("C2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))
产生1.25美元
此
s = dec.ToString("N2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))
产生1.25
答案 2 :(得分:0)
尝试将InvariantCulture传递给ToString()方法:
Dim dec As Decimal = 1.25D
dec.ToString(System.Globalization.CultureInfo.InvariantCulture);
//writes 1.25