课程
/后端开发
/Python
/python进阶
我是这样想的,一个整数求平方根后,如果不是整数,那么应该是一个无限的小数,但计算机是有位数限制的,如下图的10,11的结果,
那么我开平方后再平方的话,理论上应该是得不到原来的整数的,但现在输出的结果为什么是这样的呢
2018-06-06
源自:python进阶 2-6
正在回答
你好,应该就是精度的问题,刚刚在自己电脑上测试了一下,测试10的时候却有小数,所以导致输出的是false
不学习就挣不到钱 提问者
慕沐5586222 回复 不学习就挣不到钱 提问者
print math.sqrt(33)*math.sqrt(33)==33 结果为true
我也测试了一下,发现确实很奇怪,但把他们都转化为int或str类型就可以了,不知道具体的原因,求大神解答
print str(math.sqrt(10)*math.sqrt(10))=='10.0' true
print int(math.sqrt(10)*math.sqrt(10))==10 true
应该是精度问题。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计