当我将其转换为字符串时,浮点数为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)}");
    }
}


但目前它给了我error)预期的

最佳答案

您仍然可以使用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)

10-01 23:17