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