asp.net 如何在c#中获取特定的区域性数字模式

e37o9pze  于 2023-01-14  发布在  .NET
关注(0)|答案(4)|浏览(139)

我正在尝试在千位ex后显示逗号:1,000,但它不工作我的代码如下

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;

我哪里出错了我找不到请帮帮我

    • 更新日期:**

根据**@Umakant 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);
vbkedwbf

vbkedwbf1#

这可能会解决您的问题

s.ToString("N0");

您需要s变量的类型为int或某个数值数据类型,而不是string。

juud5qan

juud5qan2#

如果s是一个大于1000的数,这不就行了吗?

var s = 12345;
string.Format(System.Globalization.CultureInfo.GetCultureInfo("en-US"), 
    "{0:#,###0.#}", s)

这将输出:"12,345"

liwlm1x9

liwlm1x93#

有多种方法可以做到这一点。

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);
wwtsj6pe

wwtsj6pe4#

给予试试看,

NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
   nfi.NumberDecimalDigits = 0;
   int myMoney = 1234;
   Console.WriteLine(myMoney.ToString("N", nfi));

这对我很有效,如果你想要一个显示小数位数-你也可以使用NumberDecimalDigits属性指定。

相关问题