gpt4 book ai didi

c# - 使用字符串格式格式化小数

转载 作者:行者123 更新时间:2023-11-30 16:04:40 25 4
gpt4 key购买 nike

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;
}

这是一个将零填充到 double 数字的辅助函数,用户可以通过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;

即使使用内插字符串,您也必须构建变量格式并在两个单独的步骤中应用它。

希望对您有所帮助。

关于c# - 使用字符串格式格式化小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com