鱼C论坛

 找回密码
 立即注册
查看: 17766|回复: 8

[已解决]%g与%f和%e作用的区别

[复制链接]
发表于 2016-7-18 15:43:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,在《小甲鱼零基础入门python》十五课,提到%g的作用是“根据大小使用%f或%e”,但我格式化27.65845时,出现了不同结果,如图
>>> '%f %e %g'%(27.65845,27.65845,27.65845)
'27.658450 2.765845e+01 27.6584
'
问题1:这三者的区别是什么?
问题2:使用%g时,出现了数字会有“四舍六入五成双的规则”?
最佳答案
2016-7-18 15:53:31
%f 格式化定点数,可指定精度
%e 科学计数法计数
%g 根据值的大小采用%e或%f,但最多保留6位有效数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-18 15:53:31 | 显示全部楼层    本楼为最佳答案   
%f 格式化定点数,可指定精度
%e 科学计数法计数
%g 根据值的大小采用%e或%f,但最多保留6位有效数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-18 17:09:17 | 显示全部楼层
shuofxz 发表于 2016-7-18 15:53
%f 格式化定点数,可指定精度
%e 科学计数法计数
%g 根据值的大小采用%e或%f,但最多保留6位有效数字

%g的舍去方式和%f的舍去方式不同?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-18 17:34:01 | 显示全部楼层
george123 发表于 2016-7-18 17:09
%g的舍去方式和%f的舍去方式不同?

这个找几个数试一下就知道了
%f 是默认小数点后面保留6位
%g 是最多保留六位有效数字
搜狗截图20160718173130.jpg

对于%f还可以指定保留精度和位数
比如下面的例子
搜狗截图20160718173256.jpg
%5.2表示至少显示五个数字,不够的在前面补空格,小数部分保留两位小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-7-18 23:13:30 | 显示全部楼层
shuofxz 发表于 2016-7-18 17:34
这个找几个数试一下就知道了
%f 是默认小数点后面保留6位
%g 是最多保留六位有效数字

那%f和%g在舍去的时候有啥区别?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-19 14:31:41 | 显示全部楼层
george123 发表于 2016-7-18 23:13
那%f和%g在舍去的时候有啥区别?

从楼上的举例中可以看出都是四舍五入
12345.678
用%f:
'%f'%(12345.678)
就等于12345.678000    因为在这里%f没有规定 所以是默认保留小数点后6位,自动补三个0
如果规定保留小数点两位则:
'%5.2f'%(12345.678)

当然相同的数字 %f要比%g更加精确
就等于12345.68   (四舍五入后7变成8)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-21 10:19:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-21 11:28:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-7 17:24:51 | 显示全部楼层


%g舍去原理既然是四舍五入,但为什么楼主那个数据结果是直接舍去的呢?
>>> '%g'% 27.65845
'27.6584'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 18:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表