3

我正在将数据输入文本字段,我需要将其显示为百分比。有执行此操作的功能吗?

例如:在我的专栏中,我有"0.5", "0.1","0.2","0.25"等,需要显示为 50%,10%,20%,25%等,最好的方法是什么?

4

2 回答 2

11

您应该分两个阶段执行此操作:

  • 将文本解析为数字,以便将值作为“真实”类型。(作为一般规则,尽可能早地从文本解析,并尽可能晚地格式化为字符串......使用自然类型两者之间的操作会简单得多。)
  • 使用百分比的标准数字格式字符串将数字格式化为百分比

所以:

decimal percentage = decimal.Parse(input);
string output = percentage.ToString("p0");

笔记:

  • 您应该同时考虑输入和输出文化;你总是期望使用“。” 例如,作为小数分隔符?
  • 使用decimal而不是double准确表示文本中的值(例如,文本可能有“0.1”,但double不能保持正好为 0.1 的值)
  • 您可以在格式中添加所需的精度等内容;有关详细信息,请参阅链接的文档;该示例仅给出整数百分比,例如
于 2013-01-16T13:53:55.750 回答
4

最简单的方法是解析它(必须是双精度),然后将其转换回字符串,将其格式化为百分比。

var percentageString = double.Parse(doubleString).ToString("p1");

现在,你们中的一些hoity-toity 类型可能会说decimal是在这种情况下使用的正确类型。

好吧,是的,如果您需要额外的12-13 位精度

然而,我们大多数真正的人(我只想保持真实)对于double 的15-16 位精度都很好。

真正的选择是您的代码是否首先使用双精度数或小数。如果您在代码中使用双打,请坚持使用双打。如果是小数,请坚持使用小数。您绝对避免的是,在绝对必要的情况下必须在两者之间进行转换,因为有龙。以及可能损坏您的数据的意外运行时错误。但主要是龙。

于 2013-01-16T13:54:13.650 回答