我有一个具有十进制数据类型的属性,例如“ 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/