今天做poj2256的时候,用printf写%lf交是WA,看了讨论说改成%f,竟然真AC了。

一查,才发现这里还有些玄机。

似乎严格上,printf里并没有对于%lf的定义,虽然很多编译器会接受。

使用%f,无论是float型,还是double型,效果都是一样。

对于printf,因为有一个“默认参数提升”规则,float型会被提升为double型。因此printf只会看到双精度数。

对于scanf,由于接受的是指针(不太明白),并没有类型提升的说法。于是,double应该用%lf,float用%f。

相关文章:

  • 2021-10-18
  • 2021-09-17
  • 2021-11-11
  • 2021-11-06
  • 2022-01-07
  • 2021-06-27
猜你喜欢
  • 2021-04-28
  • 2022-02-07
  • 2021-04-12
  • 2022-01-24
  • 2021-12-02
  • 2021-05-13
  • 2021-05-13
相关资源
相似解决方案