所以我正在学习编程期中考试,其中一个科目正在分析用户输入的数字。 例如。用户输入X.程序告诉X是否在半个数字的1/1000之内(...- 1,-0.5,0,0.5,1 ...)并给出它最接近的数字。 I.E. 输入(1.50001)1.50001接近1.5 有没有办法以比我想要在下面实现的更简单的方式做到这一点?
N = input("Enter a number: ")
num = float(N)
x = float(N) % 2
print("remainder: ", x)
if x > 1:
num = float(N) - x
x = x - 1
if x > float(0.4) and x < float(0.9):
num = float(N) + x
x = abs(x - 0.5)
if x < float(1/1000):
print("Your number: ", x , " is a near half with ", num)
对不起,如果这看起来像一个愚蠢的问题。我似乎无法为这样的事情想出一个好的算法。
答案 0 :(得分:2)
num = float(input("Enter a number: "))
# clip err to [-0.25 .. 0.25)
err = ((num + 0.25) % 0.5) - 0.25
if abs(err) < 0.001:
print("{} is within 0.001 of {}".format(num, num - err))
像
一样运行Enter a number: 1.50003
1.50003 is within 0.001 of 1.5