将float转换为保留小数的字符串

时间:2017-11-23 04:46:32

标签: c# mysql entity-framework

当我将它转换为字符串时,我的浮点数为100.0,它变为100。

rmt.MinNumber = 0.0;
rmt.MaxNumber = 100.0;

rmt.MaxLength = rmt.MinNumber.ToString() + " - " + rmt.MaxNumber.ToString();

我知道我能做到

rmt.MinNumber.ToString("0.0");

但这也是rmt.Decimal中保存的设置,所以

如果rmt.Decimal = 1 然后 rmt.MaxLength = 100.0

如果rmt.Decimal = 2 然后 rmt.MaxLength = 100.00 等等......

如何将其转换为保留其十进制值的字符串

更新

根据CodeFuller的建议

public static class Helper
{
   public static string Format(this float f, int n)
    {
        return f.ToString($"0.{new String('0', n)}");
    }
}

但目前正在给我错误)预期

1 个答案:

答案 0 :(得分:1)

您仍然可以使用ToString("0.0")方法,但是您应该在运行时构建格式说明符,因为点后面的位数会有所不同。

考虑使用以下扩展方法:

public static class FloatExtensions
{
    public static string Format(this float f, int n)
    {
        // return f.ToString($"0.{new String('0', n)}");
        return f.ToString("0." + new String('0', n));
    }
}

rmt.MaxLength = rmt.MinNumber.Format(rmt.Decimal)