关于C++的输入输出格式%f和%lf的区别

原文:dalao博客

之所以写这个,是因为在POJ上用% l f lf lf会爆炸…

首先,说明下, C + + C++ C++将实数分为单精度和高精度这些花里胡哨的东西…
p r i n t f printf printf %f 说明符的确既可以输出 f l o a t float float型又可以输出 d o u b l e double double型。
根据一种“默认参数提升”的睿智东西, f l o a t float float型在% f f f输出时,会被提升为 d o u b l e double double型。因此使用 p r i n t f printf printf只会看到双精度数。
但作为 p r i n t f printf printf的孪生兄弟 s c a n f scanf scanf,情况就完全不同了,它接受指针,可这里没有类似的类型提升。向 f l o a t float float存储和向 d o u b l e double double存储大不一样。也就是不会出现提升的骚操作。因此, s c a n f scanf scanf是要区别% f f f和% l f lf lf

#最后,讲一下总结出来的东西:
不管你三七二十一,只要用 p r i n t f printf printf输出实数,直接用%ff就好了。而当你用 s c a n f scanf scanf读入实数,就不得不把% f f f% l f lf lf分好了

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值