检查数字是否在半位数(0,0.5,1)的千分之一以内

2024-06-16 08:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在为一个编程期中考试学习,其中一个科目是分析用户输入的数字。 例如。用户输入X。程序告诉X是否在半位数的千分之一以内(…-1,-0.5,0,0.5,1…),并给出最接近的数字。 即。 输入(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)

抱歉,如果这是个愚蠢的问题。我就是想不出一个好的算法来解决这样的问题。你知道吗


Tags: 方法用户程序numberinputif编程方式
1条回答
网友
1楼 · 发布于 2024-06-16 08:33:44
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

相关问题 更多 >