对浮点数和整数感到困惑,如何使输出完全原样,而不是四舍五入或不必要的".0"



我想做一个代码来找到我的任务直线的梯度。

它运行得很好,但不幸的是它没有通过3测试用例,因为输出有小数,所以它将小数四舍五入使其成为整数。这是代码;

Ax, Ay = input ().split()
Bx, By = input ().split()
Ax=int (Ax)
Ay=int (Ay)
Bx=int (Bx)
By=int (By)
M=(By-Ay)//(Bx-Ax)
print (M)

输入(stdln)-10年72、4,

输出2

预期输出-1.75

但是当我将其设置为浮点数时它会添加不必要的"。0"到将失败的整数

Ax, Ay = input ().split()
Bx, By = input ().split()
Ax=float (Ax)
Ay=float (Ay)
Bx=float (Bx)
By=float (By)
M=(By-Ay)/(Bx-Ax)
print (M)

输入(stdln)4 0

0, 20日你的输出5.0

预期输出5

你可以在打印前做一点检查。如果结果等于result的整数,则为整数,否则为浮点数。

Ax, Ay = input().split()
Bx, By = input().split()
Ax = float(Ax)
Ay = float(Ay)
Bx = float(Bx)
By = float(By)
M = (By-Ay)/(Bx-Ax)
M = int(M) if M==int(M) else float(M)
print(M)

当您在python中对float进行算术运算时,您的结果也将是float类型。如果您想删除结果中的小数并使其成为整数,只需使用int()函数。

M=int((By-Ay)/(Bx-Ax))

这将结果转换为整数类型,并去掉小数。

最新更新