为什么选D 求原因
展开全部
这个题目让你选“最有可能的原因”,那么必然是单选了。
A认为两个函数的返回类型不同、导致表达式结果为false。思考方向是对的,但并非问题的核心(实际上这两个函数的返回类型是相同的)。
B认为之前程序计算出的x值不准确。这跟判断毫无关系、离题万里。
C认为计算机用32位字存储(单精度)浮点型。这是个正确的论断,但是跟判断也毫无关系。
D认为pow()函数和sqrt()函数的计算过程中,其舍入误差不同。这才是问题的关键和本质所在。
E认为pow()函数存在溢出误差。这种想法是有可能的,但仅仅针对产生溢出的情况,并不能解释为这么这个表达式在一般情况下也会返回false。
A认为两个函数的返回类型不同、导致表达式结果为false。思考方向是对的,但并非问题的核心(实际上这两个函数的返回类型是相同的)。
B认为之前程序计算出的x值不准确。这跟判断毫无关系、离题万里。
C认为计算机用32位字存储(单精度)浮点型。这是个正确的论断,但是跟判断也毫无关系。
D认为pow()函数和sqrt()函数的计算过程中,其舍入误差不同。这才是问题的关键和本质所在。
E认为pow()函数存在溢出误差。这种想法是有可能的,但仅仅针对产生溢出的情况,并不能解释为这么这个表达式在一般情况下也会返回false。
更多追问追答
追问
C为什么不是储存的是double啊 我有点不太懂 还有为什么D他们有误差
追答
C的题面意思是说“计算机用32位字存储浮点数”。这个论断没有错,对于单精度浮点型而言确实占用32位。但是它跟题目需要判断的对象没有任何关系。
就像老师需要你判断一下猫是否爱吃鱼,然后你回答“鱼类分为硬骨鱼类和软骨鱼类”。这个回答本身没有错,但是跟题目无关啊。
D选项,不同的函数的实现方法不同,所以在计算过程中舍入误差是会有一定差别的,这很正常、也很常见。比方说最常见的求取a×b÷c的过程,如果先计算a×b再÷c,那么前半段有可能产生溢出、有可能因尾数过长而产生舍入误差,后半段则可能产生舍入误差;如果先计算a÷c再×b,那么前半段有可能产生下溢、有可能产生舍入误差,后半段则再度可能产生舍入误差。
比方说一个只支持两位小数的计算器,计算0.11×0.11÷0.11,那么结果是多少呢?是0.09。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询