python – 检查一个数字是否是一个整个多维数据集

老栗子 2019-09-12 10:35:09
参见英文答案 > Python rounding error with float numbers                                     2个我是python的初学者,并编写了一个代码来检查一个数字是否是一个整数的立方体.代码似乎对某些值工作正常,但是对于某些(甚至是整个多维数据集),它将多维数据集根打印为(x-0.000000004,x为多维数据集根).例如,它将给出3.9999999996作为64的立方根,但是将为8,125打印2,5.有什么想法吗? n=int(input("Please enter the number: ")) print (n) x=n**(1/3) print (x) if x==int(x): print ('%s is a whole cube'%(n)) else: print ('%s is not a whole cube'%(n)) 忽略中间打印语句,它们只是用于逐行调试.
...全文
18 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38096704 2019-09-12
  • 打赏
  • 举报
回复
你正在检查错误的条件,比较浮点值的平等可以很容易让你做恶梦.检查一下python docs have to say on this. 而是绕过根,将其转换为int,然后将此整数的多维数据集与原始数字进行比较: n = int(input("Please enter the number: ")) print (n) x = n**(1/3) x = int(round(x)) if x**3 == n: print ('%s is a whole cube'%(n)) else: print ('%s is not a whole cube'%(n)) 正如@StevenRumbalski在评论中指出的那样,在Python3中,x = int(round(x))可以写成round(x),因为round返回int.

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧