百科问答小站 logo
百科问答小站 font logo



为什么python整数除法运算得浮点数? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

整数 不等于 整型。

你的问题应该是,两个整型相除为什么得到浮点型……

如果一定要说就是规定如此。

事实上数值运算的时候类型发生变化是非常正常的事情……

例如在C语言里面,整型与浮点型计算得到浮点型。

你说俩类型相同的加减不会得到其他类型?


C#里面俩short做各种运算会得到int的结果。

这没什么值得大惊小怪的……

DateTime相减还会得到TimeSpan呢……



事实上整型的除法才是不符合直觉的吧……

之所以要设计成那样,是因为整型需要用来做精确计算。

浮点数无法做精确计算,如果直接转换为浮点数计算除法,就会产生精度丢失。

当然有人会说直接向下取整岂不是丢的更多?

事实上这是错误的,因为丢失的部分精确的等于取余运算的结果,也就是说对于C语言而言:

a/b*b+a%b===a


user avatar   pansz 网友的相关建议: 
      

开局一张图,剩下全靠猜?这个没法评价。

从软件的角度虽然我能想出两三种导致这个现象的原因,但非正式发布的产品出现任何问题都是常见现象。盲人摸象的评价没有必要。

跟11代没差别,这个肯定是违背常识的,要知道11代i9只有16线程,12代i9有24线程,24线程超越16线程并不需要多么高超的优化技巧。

调度优化的主要难题是当我们只需要少量线程运作的时候究竟把这个线程安排在哪个核心。

然而,对于全核心全线程同时计算的场景来说,反正都是全核心上场,根本不需要什么优化,谁来都是全核心工作。

如果这个软件能把所有核心用满的话,没道理性能不变。所以肯定有某个环节出了问题。正式版本再说吧。




  

相关话题

  在有能够转化为C、C++、Java的第四代语言Raptor的情况下,为什么还需要C等程序设计语言? 
  以现在的编程手段做得不到真随机吗? 
  老大只让用vi写代码该怎么破? 
  编程这种事如果写成相声是什么样? 
  什么才算是真正的编程能力? 
  既然有 memcpy_s 这种安全实现,为啥不禁用危险的 memcpy 或者更新 memcpy 源码? 
  为什么说 goto 是一种不好的用法? 
  Python 怎么二次封装一个系统函数? 
  到底存在不存在不适合学编程的人? 
  同是主流操作系统,为什么macOS没有盗版系统而Windows到处是盗版? 

前一个讨论
为什么C++里,封装类对象消亡时候,先执行封装类的析构函数,再执行成员对象的析构函数?
下一个讨论
和男友异地五年,请他在肯德基吃饭,他主动点餐结果都只有一人份,完全的单人套餐,我应该教他还是提分手?





© 2025-02-20 - tinynew.org. All Rights Reserved.
© 2025-02-20 - tinynew.org. 保留所有权利