昨天我问了这个关于小数及其内部精度的一般性问题。这是关于我要解决的场景的具体问题。
我在 SqlServer 中有输入的列 - 十进制(18,6)。当我获取这些值时,创建的 .net 小数与数据库中的精度相匹配。它们看起来像这样:
1.100000
0.960000
0.939000
0.844400
0.912340
我需要根据这些规则呈现(ToString)这些值:
- 始终显示非零。
- 显示小数点后第 n 位或之前的尾随零。
- 不显示第 n 位小数后的尾随零。
所以,当 n 为 3 时,这就是我想要的:
1.100
0.960
0.939
0.8444
0.91234
现在,我编写了一些 ToString 是小数点的代码 - 删除所有尾随零,然后分析字符串以查找小数点并计算小数位数以查看需要重新添加多少尾随零。 有没有更好的方法来实现这一点?
另外,我知道我在上面的问题中说过 ToString ......但如果我可以在离开我的数据访问层时修改小数,这样消费者总是能以适当的精度获得小数,那就更好了。是否可以在没有字符串操作的情况下对小数本身执行此操作?