1

我有一个具有十进制数据类型的属性,比如说“Interest”,然后我有另一个字符串类型的属性,比如说“InterestString”。

特性

 public decimal Interest { get; set; }
 public string InterestString { get; set; }

我想将 Interest 的值分配给 InterestString 所以我做了以下事情。例如,假设 Interest 的值为 4(没有小数位):

InterestString = Interest.ToString();

如果转换完成,我的InterestString变为“4.000”,但我的 Interest 值只有 4 而没有 .0000。

即使在转换后,我也想保留格式。我怎样才能摆脱那些微不足道的小数位?

如果我做这样的事情

InterestString = Interest.ToString("N0");

它会给我 InterestString="4"; But what if I have Interest 4.5? This will give meInterestString = "5"`(四舍五入为十)。

如果我这样做Interest.ToString("N2"),我仍然会得到 2 个微不足道的小数位。我想要的行为是删除无关紧要的小数位。

请帮忙。

4

1 回答 1

7

我不认为System.Decimal有一个Normalize方法,这基本上是你想要的。如果您知道最多需要多少个小数位,则可以使用:

string x = Interest.ToString("0.######");

有尽可能多的 # 符号,只要你感兴趣。只填写有效数字:

using System;

class Test
{
    static void Main()
    {
        ShowInterest(4m);    // 4
        ShowInterest(4.0m);  // 4
        ShowInterest(4.00m); // 4
        ShowInterest(4.1m);  // 4.1
        ShowInterest(4.10m); // 4.10
        ShowInterest(4.12m); // 4.12
    }

    static void ShowInterest(decimal interest)
    {
        Console.WriteLine(interest.ToString("0.#####"));
    }
}
于 2013-03-12T07:00:47.127 回答