整数 不等于 整型。
你的问题应该是,两个整型相除为什么得到浮点型……
如果一定要说就是规定如此。
事实上数值运算的时候类型发生变化是非常正常的事情……
例如在C语言里面,整型与浮点型计算得到浮点型。
你说俩类型相同的加减不会得到其他类型?
C#里面俩short做各种运算会得到int的结果。
这没什么值得大惊小怪的……
DateTime相减还会得到TimeSpan呢……
事实上整型的除法才是不符合直觉的吧……
之所以要设计成那样,是因为整型需要用来做精确计算。
浮点数无法做精确计算,如果直接转换为浮点数计算除法,就会产生精度丢失。
当然有人会说直接向下取整岂不是丢的更多?
事实上这是错误的,因为丢失的部分精确的等于取余运算的结果,也就是说对于C语言而言:
a/b*b+a%b===a
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有