在c#中将文本数据转换成百分比
本文关键字:转换 百分比 数据 文本 | 更新日期: 2023-09-27 17:53:31
我正在将数据放入文本字段中,我需要将其显示为百分比。有一个函数来执行这个吗?
例如:在我的列中,我有"0.5", "0.1","0.2","0.25"
等,需要显示为50%,10%,20%,25%
等,最好的方法是什么?
您应该分两个阶段完成:
- 解析文本为数字,所以你得到的值作为你的"真实"类型。(作为一般规则,尽可能早地从文本解析,并尽可能晚地格式化为字符串……两者之间的操作使用自然类型会简单得多。)
- 使用百分比的标准数字格式字符串将数字格式化为百分比
:
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位数很好。
真正的选择是你的代码是首先使用双精度数还是小数。如果你在代码中使用双精度,那就坚持使用双精度。如果是小数,就用小数。你一定要做要避免的是必须在两者之间进行转换,而不是绝对必要的,因为有龙。以及可能破坏数据的意外运行时错误。但大多是龙