为什么...
我今天随便输入了一串数(版本3.8.2),为123456789*987654321,结果是121932631112635269,我又输入123456789.0 * 987654321.0,结果却是1.2193263111263526e+17。这明明一个是浮点数,一个是整数,但为什么他们的结果却不同呢?急!欢迎解答,快点解答! 我知道科学计数法,各位。主要问题是为什么整数乘整数时,没有小数点,而浮点数相乘,得到的结果却不是整数的结果加上".0",而是由"1."开头。那这是为什么? 我再说一遍,123456789*987654321的结果是121932631112635269,而123456789(小数点).0*987654321(小数点).0的结果是1(小数点).2193263111263526e+17。这怎么回事? 没看见后面有个e吗?
那是科学计数法,
具体自己百度 1.2193263111263526e+17 是科学计数法 我知道那是科学计数法。但是浮点型那有个小数点是怎么回事?不信你用IDLE试试 陈尚涵 发表于 2020-4-10 13:00
我知道那是科学计数法。但是浮点型那有个小数点是怎么回事?不信你用IDLE试试
什么小数点? 结果哪里不同?
你先百度一下科学计数法吧。。 陈尚涵 发表于 2020-4-10 13:00
我知道那是科学计数法。但是浮点型那有个小数点是怎么回事?不信你用IDLE试试
python 是这样的
如果 你的因数加了 .0
他就会认为这是小数乘法
然后把得数它变成这样子 你数字后面有个点有个零,那就不是整型数字而是浮点型了。 heidern0612 发表于 2020-4-10 13:11
你数字后面有个点有个零,那就不是整型数字而是浮点型了。
不是,除了最后有个"小数点"外,1后面也有一个小数点。这是不是python的bug呢? 陈尚涵 发表于 2020-4-10 13:17
不是,除了最后有个"小数点"外,1后面也有一个小数点。这是不是python的bug呢?
你是指 1.2193263111263526e+17 的小数点? 本帖最后由 heidern0612 于 2020-4-10 13:23 编辑
陈尚涵 发表于 2020-4-10 13:17
不是,除了最后有个"小数点"外,1后面也有一个小数点。这是不是python的bug呢?
...
那是因为你算出来的结果太大太长了,python给你自动转换成科学计数法了。
不是bug。
就像你要是想表示1亿怎么表达?
是写成1000000000?还是写成1.0e9?
肯定还是后者显眼,一眼就知道有几个零,不用一个个的去查0.
python也一样,它自己有个阀值,超过大概20多位后,就自动给你算成科学计数法了。
省的你一眼望去16546545645648978945123165465456456489789451231之类的头晕。 1(小数点).2193263111263526e+17
这个结果只有一个小数点吧,哪里来的最后有个小数点,这个1后面小数点,加上后面的e+17就表示科学计数法 heidern0612 发表于 2020-4-10 13:20
...
那是因为你算出来的结果太大太长了,python给你自动转换成科学计数法了。
我主要不是说的科学计数法,而是你仔细观察,1后面也有个小数点,咋回事? 本帖最后由 heidern0612 于 2020-4-10 13:26 编辑
陈尚涵 发表于 2020-4-10 13:22
我主要不是说的科学计数法,而是你仔细观察,1后面也有个小数点,咋回事?
那你想怎么写?1.2345e7跟12345e3是一码事。
请深入了解下科学计数法,一般都是这么计算。。。
既然算的都是10的次幂了,那肯定不能用后者那么计算,而用前者那么算。
保留一位是科学计数法常用的习惯。 陈尚涵 发表于 2020-4-10 13:22
我主要不是说的科学计数法,而是你仔细观察,1后面也有个小数点,咋回事?
在重新百度一下科学计数法吧,比如1.23e2就是123 heidern0612 发表于 2020-4-10 13:25
那你想怎么写?1.2345e7跟12345e3是一码事。
请深入了解下科学计数法,一般都是这么计算。。。
好像懂一点了...谢谢呀,我在百度再查查资料,设你为最佳答案! 呵呵
页:
[1]