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

物产

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


我想将Interest的值分配给InterestString,所以我做了以下工作。例如,假设兴趣的值为4(无小数位):

InterestString = Interest.ToString();


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

即使转换后,我也想保留格式。我如何摆脱那些无关紧要的小数位?

如果我做这样的事情

InterestString = Interest.ToString("N0");


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

如果我执行Interest.ToString("N2"),那么我仍然可以得到2个微不足道的小数位。我想要的行为是删除微不足道的小数位。

请帮忙。

最佳答案

我认为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.#####"));
    }
}

关于c# - 转换为字符串(C#)时删除不重要的小数位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15355134/

10-12 15:59