我有一些由集合返回的字段

2.4200
2.0044
2.0000

我想要这样的结果

2.42
2.0044
2

我试过用String。格式,但它返回2.0000,并将其设置为N0也会四舍五入其他值。


当前回答

这是可行的:

decimal source = 2.4200m;
string output = ((double)source).ToString();

或者如果你的初始值是string:

string source = "2.4200";
string output = double.Parse(source).ToString();

请注意这条评论。

其他回答

其他答案:

在WPF应用程序中使用XAML你可以使用

{Binding yourDecimal, StringFormat='#,0.00#######################'}

上面的答案将在某些情况下保留0,因此您仍然可以返回2.00

{Binding yourDecimal, StringFormat='#,0.#########################'}

如果要删除所有后面的零,请相应地进行调整。

像这样试试

string s = "2.4200";

s = s.TrimStart("0").TrimEnd("0", ".");

然后把它转换成浮点数

下面的代码可以用来不使用字符串类型:

int decimalResult = 789.500
while (decimalResult>0 && decimalResult % 10 == 0)
{
    decimalResult = decimalResult / 10;
}
return decimalResult;

返回789.5

使用散列(#)符号只在必要时显示后面的0。请参阅下面的测试。

decimal num1 = 13.1534545765;
decimal num2 = 49.100145;
decimal num3 = 30.000235;

num1.ToString("0.##");       //13.15%
num2.ToString("0.##");       //49.1%
num3.ToString("0.##");       //30%
string.Format("{0:G29}", decimal.Parse("2.00"))

string.Format("{0:G29}", decimal.Parse(Your_Variable))