我需要按照指定的显示格式格式化十进制值。下面的代码中的"decimalValue.ToString("##,##,##,##,##,##,###")"
正在内部考虑当前的应用程序文化并相应地格式化值。
我尝试过CulutreInfo.InvariantCulture - 没有帮助因为 InvariantCulture的“NumberFormat.CurrencyGroupSizes”设置为3,并考虑格式化值。
我需要避免它,我应该能够告诉应用程序ingore文化,并按照指定的displayformat格式化值。
任何解决方案?请帮忙。
e.g。
decimal? de = 1234567890;
string displayFormat = "##,##,##,##,##,##,###";
string result = de.Value.ToString(displayFormat);
System.Console.WriteLine(result);
o / p - 1,234,567,890 (应用文化是en-US)。
答案 0 :(得分:1)
试试这个:
decimal? de = 1234567890;
string displayFormat = "##/##/##/##/##/##/###";
string result = de.Value.ToString(displayFormat).Replace("/", ",").TrimStart(new char[] { ',' } );
System.Console.WriteLine(result);
答案 1 :(得分:0)
using System.Globalization;
void Main()
{
CultureInfo myCIintl = new CultureInfo( "hi-IN", false );
Thread.CurrentThread.CurrentCulture = myCIintl;
double de = 1234567890;
Console.WriteLine(de.ToString("c"));
}
答案 2 :(得分:0)
如果你想要印度数字/日期格式化,那么shahkalpesh共享的代码是有效的(但是你不需要改变线程的文化,你可以直接在String.Format(IFormatProvider, String, Object[])
方法中设置它)
如果您想创建自己的自定义文化,请考虑使用CultureAndRegionInfoBuilder
来定义它。