使用字符串格式格式化小数
formatting decimals using string format
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[=传递需要补零的个数17=]。
上面的函数没有通过我的单元测试,在所有测试用例中收到的输出都是 {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;
即使使用内插字符串,您也必须构建变量格式并在两个单独的步骤中应用它。
希望对您有所帮助。
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[=传递需要补零的个数17=]。
上面的函数没有通过我的单元测试,在所有测试用例中收到的输出都是 {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;
即使使用内插字符串,您也必须构建变量格式并在两个单独的步骤中应用它。
希望对您有所帮助。