在c#中将文本数据转换成百分比

本文关键字:转换 百分比 数据 文本 | 更新日期: 2023-09-27 17:53:31

我正在将数据放入文本字段中,我需要将其显示为百分比。有一个函数来执行这个吗?

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

在c#中将文本数据转换成百分比

您应该分两个阶段完成:

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

:

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

指出:

  • 你应该同时考虑输入和输出文化;例如,您是否总是期望使用"。"作为小数分隔符?
  • 使用decimal而不是double来精确地表示文本中的值(例如,文本可以有"0.1",但double不能恰好保持0.1的值)
  • 你可以在格式中添加所需的精度;请参阅链接的文档了解详细信息;这个例子只给出一个整数百分比,例如

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

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

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

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

然而,我们大多数人真正的人(我都是为了保持真实)对双精度的15-16位数很好。

真正的选择是你的代码是首先使用双精度数还是小数。如果你在代码中使用双精度,那就坚持使用双精度。如果是小数,就用小数。你一定要要避免的是必须在两者之间进行转换,而不是绝对必要的,因为有龙。以及可能破坏数据的意外运行时错误。但大多是龙