C#从低于1

时间:2016-03-09 14:18:22

标签: c# .net string trim

例如:

string value = "0000.025";

我需要0.025

我试过

value.TrimStart('0');

但返回 .025

4 个答案:

答案 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");