论CPP中输出流%f、%lf的区别

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

首先,说明下, C + + C++ C++将实数分为单精度和高精度这些花里胡哨的东西…
p r i n t f printf printf % f \%f %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输出实数,直接用 % f \%f %f就好了。而当你用 s c a n f scanf scanf读入实数,就不得不把 % f \%f %f % l f \%lf %lf分好了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值