2016-07-23 109 views
-2

给定一个介于0和1之间的实数(例如0.2836),我只想返回没有圆点的编号(例如在这种情况下,从0.2836 - > 2836或02836)。我试图用python来做到这一点,但我刚开始,我需要一些帮助。删除python中的编号

+2

显示你的尝试。 (你的意思是*期*,而不是逗号) – Idos

+0

我还没有尝试过任何东西,因为我不知道从哪里开始 – Peterix

+2

'str(number).replace('。','')' –

回答

4

只要你有一个数字,下面应该做的:

>>> number = 0.2836 
>>> int(str(number).replace('.', '')) 
2836 

如果.没有在字符串中发现,str.replace刚刚返回原始字符串。

随着更多的数字:

>>> int(str(1).replace('.', '')) 
1 
>>> int(str(1.2).replace('.', '')) 
12 
+0

据我所见,该命令可以在逗号后使用小于12位数的数字,是一种有更多数字返回的方法? – Peterix

+0

@Peterix [浮点算术:问题与局限](https://docs.python.org/3/tutorial/floatingpoint.html#floating-point-arithmetic-issues-and-limitations) –

0

由条与空字符串调用其.replace方法作为第二个参数,以除去不想要的字符的最简单方法:

x = str(123.45) 
x = x.replace('.','') 
print(x)     # Prints 12345 

笔记,这将留下任何前导零(即使用此方法的0.123将导致0123

如果您知道那里总是,说,4个数字的小数点后(在的情况下,有少,你想尾随零),你可以通过适当的因素首先乘人数:

x = 123.4567 
x *= 10000 
x = str(int(x))   # Convert float to integer first, then to string 
print(x)     # Prints 1234567 

还有其他的选择,但这可能会使您指向正确的方向。