我正在尝试复制Java的DecimalFormat
类的子集。以下是我的想法。这对每个人来说都是正确的吗?
public class DecimalFormat : NumberFormat
{
int _maximumFractionDigits;
int _minimumFractionDigits;
string _format;
void RebuildFormat ()
{
_format = "{0:0.";
_format += new string ('0', _minimumFractionDigits);
if (_maximumFractionDigits > _minimumFractionDigits) {
_format += new string ('#', _maximumFractionDigits -
_minimumFractionDigits);
}
_format += "}";
}
public override string format (object value)
{
return string.Format (_format, value);
}
public override void setMaximumFractionDigits (int n)
{
_maximumFractionDigits = n;
RebuildFormat ();
}
public override void setMinimumFractionDigits (int n)
{
_minimumFractionDigits = n;
RebuildFormat ();
}
public override void setGroupingUsed (bool g)
{
}
public static NumberFormat getInstance ()
{
return new DecimalFormat ();
}
}
答案 0 :(得分:1)
实际上,最简单的方法是使用ToString("N2");
,其中2被您想要的小数位数替换。
如果你真的想要最小值和最大值,你也可以使用IFormattable
的{{1}},它会给你一个至少有两位小数,最多四位的数字,用逗号数字分隔符在整体部分。