既然浮点数可以表示所有整数数值Python语言为何要同时提供整数和浮点数两种数

 我来答
灬心羽
2019-01-05 · TA获得超过1164个赞
知道小有建树答主
回答量:921
采纳率:100%
帮助的人:372万
展开全部

python中的整形和浮点数从底层实现来说就是不一样的。python的整形根据数值大小,可以动态对应C语言的int(4字节)和long(8字节),浮点型对应C语言的double(8字节)

在使用浮点数表示整数时,有可能出现精度丢失的现象。可以跑一下下面这个demo:

import sys

a = sys.maxsize / 2
b = float(sys.maxsize)
print(a, b)

for i in range(0, 100000000):
a += 1
b += 1

print(a ,  b)

(运行时间可能较长)运行结果如下:

可见浮点数直接丢掉了这一个亿的结果,如果是用来算钱数。。啧啧。。。

究其原因,在于浮点数在内存中的表示形式遵循IEEE 754 标准,原理分析可以参考其他资料。Python的浮点数损失精度问题——程序员修炼之路

华玉龙55
2019-01-05 · TA获得超过341个赞
知道小有建树答主
回答量:694
采纳率:79%
帮助的人:88.3万
展开全部
因为浮点数需要占用的资源更多,在不需要用浮点数的时候用整型更方便高效,
就比如汽车只能在公路上走,而自行车基本在哪都能骑,难到你有了自行车就不坐汽车了?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式