数据计算的基本问题。哪位给解释一下。

tangt 2020-08-09 04:20:31

>>> 10/0.3
33.333333333333336
>>> 1/0.3
3.3333333333333335

>>> 'number is {num:g}'.format(num=1/0.3)
'number is 3.33333'
>>> 'number is {num:f}'.format(num=1/0.3)
'number is 3.333333'
>>> 'number is {num:e}'.format(num=1/0.3)
'number is 3.333333e+00'
>>> 'number is {num:g}'.format(num=10/0.3)
'number is 33.3333'
>>> 'number is {num:f}'.format(num=10/0.3)
'number is 33.333333'
>>> 'number is {num:e}'.format(num=10/0.3)
'number is 3.333333e+01'


请解释一下,这些输出不同的地方,都是什么原因啊?
...全文
162 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyj_88 2020-08-13
  • 打赏
  • 举报
回复
引用 楼主 tangt 的回复:
>>> 10/0.3 33.333333333333336 >>> 1/0.3 3.3333333333333335 >>> 'number is {num:g}'.format(num=1/0.3) 'number is 3.33333' >>> 'number is {num:f}'.format(num=1/0.3) 'number is 3.333333' >>> 'number is {num:e}'.format(num=1/0.3) 'number is 3.333333e+00' >>> 'number is {num:g}'.format(num=10/0.3) 'number is 33.3333' >>> 'number is {num:f}'.format(num=10/0.3) 'number is 33.333333' >>> 'number is {num:e}'.format(num=10/0.3) 'number is 3.333333e+01' 请解释一下,这些输出不同的地方,都是什么原因啊?
tianfang 2020-08-11
  • 打赏
  • 举报
回复
单精度浮点的精度只能保证6位多一点 是单精度浮点的固有问题,其他语言也一样

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧