将文本数据转换为C#中的百分比

时间:2013-01-16 13:51:55

标签: c#

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

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

2 个答案:

答案 0 :(得分:10)

您应该分两个阶段完成此操作:

  • 将文本解析为数字,这样您就可以将该值作为“真实”类型。 (作为一般规则,尽可能早地从文本中解析,并尽可能晚地格式化为字符串...使用自然类型将两者之间的操作变得更加简单。)
  • 使用standard numeric format string
  • percentage将数字格式设置为百分比

所以:

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

注意:

  • 你应该考虑输入和输出文化;你总是希望用“。”作为小数分隔符,例如?
  • 使用decimal而不是double来准确表示文本中的值(例如,文本可能为“0.1”,但double无法保持0.1的值)
  • 您可以为格式添加所需精度等内容;有关详细信息,请参阅链接的文档;该示例仅提供整数百分比,例如

答案 1 :(得分:4)

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

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

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

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

然而,我们大多数人真正的民间(而且我都是为了保持真实)并没有double's 15-16位精度。

真正的选择是您的代码是否首先使用双精度或小数。如果你在代码中使用双打,只需坚持使用双打。如果是小数,则坚持小数。你肯定想要避免的是必须在两者之间转换,而不是绝对必要,因为有龙。和意外的运行时错误可能会破坏您的数据。但主要是龙。