【发布时间】:2011-02-21 14:38:14
【问题描述】:
在 Java 中,您可以使用 BigDecimal.stripTrailingZeros() 删除末尾的任何多余零。
我在这里阅读了一些关于如何在 C# 中从小数中去除尾随零的问题,但它们似乎都没有提供正确的解决方案。
This question 例如,执行 ToString("G") 的答案并不总是有效。
理想情况下,我想要一个执行小数 -> 小数的函数,新的小数具有尽可能小的比例,而不会丢失任何信息或删除任何尾随零。
有什么方法可以轻松做到这一点?还是会涉及摆弄decimal.GetBits()?
编辑:还应该补充一点,我有 i18n 担心因此对结果进行字符串操作并不理想,因为小数分隔符存在差异。
【问题讨论】:
-
嗯,提到修剪的答案似乎更有效,应该在所有情况下都有效..使用stackoverflow.com/questions/4525854/remove-trailing-zeroes/…
-
查看 Marc Gravell 在这篇文章中的回答:stackoverflow.com/questions/2714645/…。就像你问的那样,它确实是十进制。
-
@Shekhar:实际上,使用修剪的问题中的答案被严重破坏了。
-
@DoctaJonez - 不幸的是,这个答案没有去掉零。我事先有 ToString() -> 1000.0000,之后有 ToString() -> 1000.0000。