我需要格式化数字,如“1.2452”以显示“452”所以我不想看到所有的数字。问题是,我无法直接控制显示编号,我只能通过根据NumberFormatInfo类设置一个格式字符串来格式化它。这是可能的,如果是的话,如何?如何使用NumberFormatInfo指定数字和小数位
欢呼
编辑:
我发现我可以订阅“FormatEvent”,这使我对做自定义格式为数字格式后的字符串。感谢大家的帮助和见解! :)
我需要格式化数字,如“1.2452”以显示“452”所以我不想看到所有的数字。问题是,我无法直接控制显示编号,我只能通过根据NumberFormatInfo类设置一个格式字符串来格式化它。这是可能的,如果是的话,如何?如何使用NumberFormatInfo指定数字和小数位
欢呼
编辑:
我发现我可以订阅“FormatEvent”,这使我对做自定义格式为数字格式后的字符串。感谢大家的帮助和见解! :)
您可以通过实施IFormatter来创建自己的格式说明符。但是你不能这样做那些已经被烘焙到.NET中的类型。像System.Double或System.Decimal一样,或者其值为1.2452的变量类型。这些标准.NET类型的格式说明符不允许选取最后3位数字。
带有已更改的NumberFormatInfo的自定义文化不支持对格式设置的足够控制。
您需要控制实际值。然后它很简单。
我敢肯定,这是不可能的,因为你只能从最不重要的过滤出来。
我想我们需要确切知道你需要什么算法来格式化数字。 但你可以将它转换为一个字符串,然后只是做一个子串。
使用.NET
[math]::pi *-- give 3.1415926538979*
([math]::pi).tostring().split(".")[1] *-- gives: 14159265358979*
([math]::pi).tostring().split(".")[1].substring(0,4) *-- Gives : 1415*
使用.NET?你确定吗?! – 2010-09-29 16:07:14
的NumberFormatInfo没有提供足够的灵活性,以适应这个(奇异)格式。我建议只是有一个ReadOnly财产,相应地设置您的号码的格式...
public string NumberFormatted
{
get
{
string num = YourNumber.ToString();
int index = num.IndexOf(".");
if(index > -1 && index < num.Length - 2)
num = num.Substring(index + 2);
return num;
}
}
我只是不想显示完整的数字。只有最后的数字很重要。这是外汇报价。 – bretddog 2010-09-29 14:13:42