我试图在千元之前显示逗号:1000但它不起作用我的代码在
之下string.Format("{0:#,###0.#}", s.ToString());
我尝试了很多类型的参考和建议代码在
之下string.Format(new System.Globalization.CultureInfo("en-US"), "{0:N}", s.ToString());
在回发方法中我写了下面的代码
CultureInfo en = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = en;
我出错的地方我无法找到请帮助我
更新
根据 @Ukkant Dubey 建议我尝试通过静态值时代码低于
var amount = 44690.7500;
var cultureInfo = CultureInfo.GetCultureInfo("en-US");
var formattedAmount = String.Format(cultureInfo, "{0:C}", amount);
上面的代码正在运行,但是当更改代码意味着如果我传递动态值它将无法正常工作
var amount = dts.Rows[0][16];
var cultureInfo = CultureInfo.GetCultureInfo("en-US");
var formattedAmount = String.Format(cultureInfo, "{0:C}", amount);
答案 0 :(得分:2)
答案 1 :(得分:1)
如果s
是一个数字> 1000,这不正常吗?
var s = 12345;
string.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"),
"{0:#,###0.#}", s)
输出:"12,345"
答案 2 :(得分:1)
有多种方法可以做到这一点。
string str = String.Format("{0:n}", 1234);
string strWithoutDecimal = string.Format("{0:n0}", 1234);
string str3 = 1234.ToString("N0");
string str4 = 1234.ToString("#,##0");
string strCultureSpecific = (1234).ToString("N",new CultureInfo("en-US"));
string strNoCulture = string.Format(CultureInfo.InvariantCulture, "{0:N0}", 1234);
答案 3 :(得分:1)
试一试,
NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
nfi.NumberDecimalDigits = 0;
int myMoney = 1234;
Console.WriteLine(myMoney.ToString("N", nfi));
这对我有用,如果你想要显示十进制数字 - 你也可以使用NumberDecimalDigits属性指定。