在Python中 先乘再除 和 先除再乘 是有差别的
创始人
2024-01-22 06:54:44
0

浮点数的原因

  • 1 问题来源
  • 2 为什么会这样?
    • 2.1 分解公式
    • 2.2 先乘再除≠先除再乘
  • 3 结语

1 问题来源

在编写代码的过程中遇到了一个让我记忆尤深的问题,举例:

for i in range(0, 8):if -1*3.9+ i*( 3.9/7 ) == 0:print( -1*3.9+ i*( 3.9/7 ) )else:print(f'No{i+1} No answer')

没有输出任何结果:
在这里插入图片描述

2 为什么会这样?

2.1 分解公式

i=7
在这里插入图片描述
会发现-1*3.9+ i*( 3.9/7 )竟然不等于0i*( 3.9/7 )也不等于3.9,这时就不由得让我想到浮点数的问题,计算机语言有固定位数的浮点数,所以可能是这个原因,导致3.9/7得到的是一个有限位数的浮点数,并不能完全等于3.9/7之后乘以7自然也就不是3.9了。

2.2 先乘再除≠先除再乘

在这里插入图片描述

3 结语

如果你也遇到类似的判断问题,请留意!
为了得到我想要的判断结果,因此我选择先乘再除,修改代码如下:

for i in range(0, 8):if -1*3.9+ i* 3.9/7  == 0:print( -1*3.9+ i* 3.9/7  )else:print(f'No{i+1} No answer')

在这里插入图片描述

相关内容

热门资讯

普京谈乌克兰腐败:坐着金马桶的... 【文/观察者网 熊超然】当地时间11月20日,俄罗斯总统普京身着戎装在俄军“西部”集群的一个指挥所内...
英国启动50年来最大移民制度改... 钛媒体App 11月21日消息,根据英国内政部20日发布的新闻稿,英国当天启动50年来最大移民制度改...
上海金融监管局推动建立交通事故... 记者21日获悉,为助力交通事故责任纠纷源头预防和实质解纷,筑牢社会和谐共治的稳定基石,上海金融监管局...
王楚钦回应输球樊振东后用头撞球... 11月20日,第十五届全运会乒乓球男团决赛,由黄友政、马龙、王楚钦上场的北京队以3∶1战胜由许昕、周...
特斯拉回应合同纠纷:已调解解决 2025-11-21 10:40:55 作者:狼叫兽 感谢热心网友提供的信息。11月21日,特斯拉...
吴澜任宁夏回族自治区副主席 11月21日,宁夏回族自治区十三届人大常委会第二十一次会议决定任命吴澜为自治区副主席。 吴澜(资料...
中央政策研究室主任江金权发表署... 11月21日,《人民日报》理论版刊发中央政策研究室主任江金权署名文章《“十四五”时期我国发展取得重大...
重庆市永川区原区长常晓勇履新重... 据“重庆师大继续教育”微信公众号消息,11月17日上午,由重庆师范大学承办的“重庆中国三峡博物馆20...
外媒:乌方否认俄军已控制乌克兰... 【环球网报道】据路透社报道,乌克兰军方当地时间20日否认俄军方稍早前有关已控制乌克兰库皮扬斯克市说法...