Python:删除十进制除法
我制作了一个程序,将数字除法,然后返回数字,但问题是当它返回数字时,它有一个如下的十进制:Python:删除十进制除法,python,decimal,division,Python,Decimal,Division,我制作了一个程序,将数字除法,然后返回数字,但问题是当它返回数字时,它有一个如下的十进制: 2.0 但我希望它能给我: 2 那我还能做什么呢 提前谢谢 您可以对最终结果调用int(): >>> int(2.0) 2 当一个数字作为十进制数时,它在Python中通常是一个数字 如果要删除小数并将其保留为整数()。您可以对其调用int()方法,如下所示 >>> int(2.0) 2 但是,int向下舍入,因此 如果要舍入到最接近的整数,可以使用: 然后调用
2.0
但我希望它能给我:
2
那我还能做什么呢
提前谢谢 您可以对最终结果调用int()
:
>>> int(2.0)
2
当一个数字作为十进制数时,它在Python中通常是一个数字 如果要删除小数并将其保留为整数()。您可以对其调用
int()
方法,如下所示
>>> int(2.0)
2
但是,int
向下舍入,因此
如果要舍入到最接近的整数,可以使用:
然后调用int()
:
>>> int(round(2.9))
3
>>> int(round(2.4))
2
您将得到答案,答案为2您可能会像下面这样做
# p and q are the numbers to be divided
if p//q==p/q:
print(p//q)
else:
print(p/q)
还有一个数学函数
modf()
import math
print("math.modf(3.14159) : ", math.modf(3.14159))
将输出一个元组:
math.modf(3.14159):(0.14159,3.0)
如果希望保留整个部分和小数点以供参考,此选项非常有用,如:
decimal,whole=math.modf(3.14159)
如果val%1==0:
val=int(val)
其他:
val=浮动(val)
这对我有用
工作原理:如果val与1的商的余数为0,则val必须是整数,因此可以声明为int,而不必担心丢失十进制数
比较这两种情况:
A:
val=12.00
如果val%1==0:
val=int(val)
其他:
val=浮动(val)
打印(val)
在这种情况下,输出为12,因为12.00除以1的余数为0。有了这些信息,我们知道val没有任何小数,我们可以将val声明为int
B:
val=13.58
如果val%1==0:
val=int(val)
其他:
val=浮动(val)
打印(val)
这一次输出是13.58,因为当val除以1时,有一个余数(0.58),因此val被声明为浮点
通过将数字声明为int(不测试余数),十进制数字将被截断
这样,最后就不会有零,除了零之外,其他任何零都会被忽略。请给我们看一下你的代码。你也可以使用整数除法与
/
,它总是给出一个整数,例如1//2
它给出0
如果这对你有帮助,那么如果它是一个大数字,你可以怎么办?@Jeff你为什么不检查一下自己?Python对数字的大小没有问题。谢谢!我在发帖子后意识到了这一点。不管出于什么原因,我认为unix日期格式的数字太大,但我错了!ValueError:int()的文本无效,基数为10:'68.0'@Kyrie你可以做int(float('68.0'))
@TerryA如果int(1.999999999999999999)
,它将不起作用,我如何删除小数?@Bearmath.floor(1.999999999999999999)
这会增加哪些其他答案中没有的内容?谢谢,这帮助我解决了一个不同但相关的问题。:)@jayveesea谢谢你的提示,我在网站和编程方面还是新手。
>>> int(2.0)
# p and q are the numbers to be divided
if p//q==p/q:
print(p//q)
else:
print(p/q)
def division(a, b):
return a / b if a % b else a // b
import math
print("math.modf(3.14159) : ", math.modf(3.14159))