例如:
string value = "0000.025";
我需要0.025
我试过
value.TrimStart('0');
但返回 .025
答案 0 :(得分:8)
您获得.025
的原因是因为TrimStart('0')
将修剪所有前导0
,直到它达到除0
之外的所有内容:
0000.025 //zero at start? yes! trim and continue
000.025 //zero at start? yes! trim and continue
00.025 //zero at start? yes! trim and continue
0.025 //zero at start? yes! trim and continue
.025 //zero at start? no! stop
解决此问题的最简单方法之一是将value
转换为decimal
(赠送至Eric Lippert),然后转换为re-print
:
string value = "0000.025";
string dbrep = Convert.ToDecimal(value).ToString("F3"); //Note, F3 here means you are printing Floating-Point with three numbers after decimal separator.
(注意:作为Eric Lippert suggests,如果我们进行“往返”,最好使用decimal
而不是double
,因为精确和代表性问题{{1数据类型可能具有。将分母中没有幂2的double
转换为string
并返回double
“不是往返”,值将是略有改变)
答案 1 :(得分:4)
您必须转换为double
,然后致电ToString
string val = Double.Parse("0000.025").ToString();
因为使用double
,您可能会遇到数字小数部分precision
的问题,最好使用:
string val = Decimal.Parse("0000.025").ToString();
答案 2 :(得分:2)
当然,trim方法会删除所有出现的内容......您可以使用
将其添加回来# probably not the best pythonic way but it works
matrix = [[0 for x in range(steps)] for x in range(steps)]
答案 3 :(得分:1)
如果您将它带到一个简单的双,它将从数字
中删除多余的零 double value = Double.Parse("0000.025");