【发布时间】:2018-01-20 11:38:23
【问题描述】:
我知道可以使用格式模式中的# 删除尾随零:
double value = 92;
string formatted = $"{value:0.#}"; // "92"
并且使用P 会给你一个百分比:
double value = .9234;
string formatted = $"{value:P1}"; // "92.3%"
但是有没有办法将两者结合起来产生带有可选小数的百分比?
double value .92;
string formatted1 = $"{value:P#}"; // doesn't work.
string formatted2 = $"{value:P0.#}"; // doesn't work.
任何人都知道一种使用格式来实现此目的而不必将值乘以 100 的方法吗?基本上我想要.92 => 92% 和.924 => 92.4%
【问题讨论】:
-
如果您关心性能,请不要担心,乘法是在几个周期内完成的指令之一。在你眨眼之前,CPU 可以乘以百万倍。
-
@M.kazemAkhgary,在这种情况下,不,这不是关于性能,而是关于简单性,但在我的实际项目中,它会提高性能。我正在 UWP 中做一些事情,并希望避免复杂的绑定和/或自定义模板只是为了删除尾随零。这很难用几句话来解释,但如果格式模式能够处理它,它实际上会提高性能。
-
我希望你能在另一个考虑绑定和 UWP 的问题中问它。确保它不是重复的。您可以使用转换器。传递参数 100。在转换器内部尝试解析 int,将值乘以参数,转换回字符串并返回。 docs.microsoft.com/en-us/uwp/api/…
-
我没有投反对票。为什么你认为我做到了?这是我的证明。 Upvoted ;) 但请记住不要过度简化您的问题,因为尽管您的问题是可以回答的,但它并不能回答或解决您真正的问题
标签: c# string.format