使用字符串格式设置小数格式
本文关键字:格式 设置 小数 字符串 | 更新日期: 2023-09-27 18:29:55
public static string PadZero(this double number, int decimalPlaces)
{
var requiredFormat = "0." + "".PadRight(decimalPlaces, '0');
var something = $"{number:requiredFormat}";
return number.IsNotZero() ? something: string.Empty;
}
这是一个将零填充到双精度数的辅助函数,用户可以通过 decimalPlaces 传递需要填充的零数。上面的函数失败了我的单元测试,在所有测试用例中收到的输出都是{requiredFormat}。我刚刚将:var something = $"{number:0.00}";
替换为可以处理任意数量的零填充的通用变量 requiredFormat。
你的例子有两个问题。首先,something
的值不会生成可用于格式化数字的字符串。第二个是你没有使用something
来执行数字格式,通过使用string.format
。
所以首先,声明:
var something = $"{number:requiredFormat}";
不会给你你想要的结果,这将是一个看起来像这样的字符串:
{0:0.0000}
尝试将代码更改为:
var something = $"{{0:{requiredFormat}}}";
如果在该语句执行后执行Console.WriteLine(something)
则可以检查something
的值以确保它是您要查找的值。
之后,更改此行:
return number.IsNotZero() ? something: string.Empty;
阅读:
return number.IsNotZero() ? string.Format(something, number) : string.Empty;
即使使用内插字符串,您也必须构建变量格式并在两个单独的步骤中应用它。
希望有帮助。