鱼C论坛

 找回密码
 立即注册
查看: 1295|回复: 5

[已解决]关于15课中字符串格式化符号%g的作用问题

[复制链接]
发表于 2018-3-7 13:21:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Chase_Kas 于 2018-3-7 13:24 编辑

http://bbs.fishc.com/thread-92997-1-1.html帖子中对%g的描述是:根据值的大小决定使用%f或%e
但是在视频中运行的例子来看:
  1. >>> '%f' % 27.658
  2. '27.658000'
  3. >>> '%e' % 27.658
  4. '2.765800e+01'
  5. >>> '%g' % 27.658
  6. '27.658'
复制代码

%g的结果与%f和%e的结果都不一样!而是原样输出
说明%g并没有使用%f或者%e,那么上面帖子对于%g的描述是否有误
经测试,>=1000000和<=0.00001的数字才会采用科学计数法,而且均保留最小位数
  1. >>> '%g' % 100000
  2. '100000'
  3. >>> '%g' % 1000000
  4. '1e+06'
  5. >>> '%e' % 1000000
  6. '1.000000e+06'

  7. >>> '%g' % 0.0001
  8. '0.0001'
  9. >>> '%g' % 0.00001
  10. '1e-05'
  11. >>> '%e' % 0.00001
  12. '1.000000e-05'

  13. >>> '%g' % 0.1000000000
  14. '0.1'
  15. >>> '%f' % 0.1000000000
  16. '0.100000'
复制代码

有没有懂的大佬解释下%g的真实作用是什么?
最佳答案
2018-3-7 13:29:54
对于%g的描述没有什么问题应该。
%f 是默认小数点后保留6位
%g 是最多保留6位有效数字
所以,你尝试那几个数字就会这样显示啊

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-7 13:22:47 | 显示全部楼层
怎么@论坛大佬额
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 13:23:39 | 显示全部楼层
上面的解释基本正确,只是输出的格式少有不同,明显%g会更智能一些
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 13:28:24 | 显示全部楼层
BngThea 发表于 2018-3-7 13:23
上面的解释基本正确,只是输出的格式少有不同,明显%g会更智能一些


是不是:%g默认保留最小位数,在0.00001和1000000数值之间都采用%f,而在这之外的数字都采用%e。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 13:29:54 | 显示全部楼层    本楼为最佳答案   
对于%g的描述没有什么问题应该。
%f 是默认小数点后保留6位
%g 是最多保留6位有效数字
所以,你尝试那几个数字就会这样显示啊

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 13:32:11 | 显示全部楼层
Zmynx_2017 发表于 2018-3-7 13:29
对于%g的描述没有什么问题应该。
%f 是默认小数点后保留6位
%g 是最多保留6位有效数字

原来如此!完美解释了为什么小于0.00001和大于999999的数会用%e来表示,因为超出位数了!感谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-8 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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