【发布时间】:2014-07-19 16:24:05
【问题描述】:
场景:
第 1 步: 获取十进制值
第 2 步: 使用文化信息显示正确的货币
第 3 步: 结果:
“$100.0000”
“24.0340 英镑”
“11,0400 欧元”
第 4 步: 对 £ 和 $ 使用 trimend,其中符号在数字之前:
input = input.TrimEnd("0".ToCharArray());
input = input.TrimEnd(".".ToCharArray());
输出:
“100 美元”
“24.034 英镑”
“11,0400 欧元”
如果最后是零或点,这很简单,但是当其他字符在末尾时,它会中断,以防€文化。
在不进行字符串操作的复杂工作的情况下,从不同字符串中删除尾随零的最佳方法是什么?这甚至是我这样做的正确方式吗?
【问题讨论】:
-
原来的十进制值怎么了?
-
先去掉两端的货币符号,然后去掉两端的空格,再去掉右边的小数。您不能一次完成所有这些,只能一步一步地完成。
-
或者您可以在第一步中去除任何非数值,甚至使用正则表达式提取数值,不包括尾随零。
-
简单地删除所有尾随零似乎并不正确。例如,“$100.5000”应更改为“$100.50”,而不是“$100.5”。
-
@MichaelLiu "$100.5" 非常罕见,但你凭什么逻辑可以说它不正确?
标签: c#