Python:移除小数除法

wi3ka0sx  于 2022-12-17  发布在  Python
关注(0)|答案(8)|浏览(310)

我做了一个程序,它能把数字除掉,然后返回结果,但问题是当它返回结果时,它有一个小数,像这样:

2.0

但我希望它能给予我:

2

有什么我能做吗?
提前致谢!

vawmfj5a

vawmfj5a1#

可以根据最终结果调用int()

>>> int(2.0)
2
p4tfgftt

p4tfgftt2#

在Python中,当一个数字是小数时,它通常是float
如果你想去掉小数点并保留整数(int),你可以像这样调用int()方法...

>>> int(2.0)
2

但是,int向下舍入,所以...

>>> int(2.9)
2

如果要舍入到最接近的整数,可以使用round

>>> round(2.9)
3.0
>>> round(2.4)
2.0

然后调用int()

>>> int(round(2.9))
3
>>> int(round(2.4))
2
f0ofjuux

f0ofjuux3#

您可能会执行以下操作

# p and q are the numbers to be divided
if p//q==p/q:
    print(p//q)
else:
    print(p/q)
lpwwtiir

lpwwtiir4#

有一个数学函数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)

kcugc4gi

kcugc4gi5#

>>> int(2.0)

您将得到答案2

busg9geu

busg9geu6#

def division(a, b):
    return a / b if a % b else a // b
l5tcr1uw

l5tcr1uw7#

if val % 1 == 0:
    val = int(val)

else:
    val = float(val)

这对我很有效。
工作原理:如果瓦尔和1的商的余数是0,则val必须是整数,因此可以声明为int而不必担心丢失十进制数。
比较以下两种情况:
答:

val = 12.00

if val % 1 == 0:
    val = int(val)
else:
    val = float(val)

print(val)

在这个场景中,输出是12,因为12.00除以1的余数是0。根据这个信息,我们知道瓦尔没有任何小数,我们可以声明val为int。
B:

val = 13.58

if val % 1 == 0:
    val = int(val)
else:
    val = float(val)

print(val)

这一次的输出是13.58,因为瓦尔除以1后有余数(0.58),因此val被声明为浮点型。
只要声明数字为int型(不测试余数),十进制数就会被截断。
这样,末尾就不会有零,而且除了零之外,其他的都不会被忽略。

vyu0f0g1

vyu0f0g18#

在Python中有4种方法可以删除小数位,
1.使用int()函数
1.使用数学库中的trunc()函数
1.使用字符串格式和方法
1.使用%d占位符
1.使用split()函数
1.使用round()函数

1.使用int()函数

int()是一个Python Built-in Type函数。

>>> number = 2.0
>>> number
2.0
>>> number = int(2.0)
2
>>> type(number)
<class 'int'>

2.在数学库中使用trunc()函数

数学库中的trunc()函数。

>>> import math
>>> 
>>> number = 2.0
>>> number
2.0
>>> number = math.trunc(2.0)
2
>>> type(number)
<class 'int'>

3.使用字符串格式和方法

请注意:-本节中返回的所有内容都是str类型。

1.使用%d占位符

使用%d占位符格式化字符串

>>> number = 2.0
>>> number
2.0
>>> number = '%d'%number
>>> number
'2'
>>> type(number)
<class 'str'>

2.使用split()函数

split()函数是一个字符串方法。

>>> number = 2.0
>>> number
2.0
>>> number=str(number).split('.')[0]
>>> number
'2'
>>> type(number)
<class 'str'>

4.使用round()函数

round()是一个内置函数。

>>> number = 2.0
>>> number
2.0
>>> number = round(number)
>>> number
2
>>> type(number)
<class 'int'>

参考资料:

相关问题