首页 > 解决方案 > 在 C 中打印 long double

问题描述

对于以下代码片段:

  long double foo = 5.32e-5;
  double bar  = foo ;

  printf("%Lf can be written %Le\n", foo, foo);
  printf("%f can be written %e\n", bar , bar);

我得到这个输出:

-1950228512509750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000来

0.000053 可以写成 5.320000e-005

foo已毫无问题地转换为bar ,这让我认为变量的内部表示很好,但是当我打印这两个变量时bar具有准确的表示而foo没有。

我相信 %Lf 和 %Le 格式是正确的,但是如果我使用小写字母(%lf 和 %le),我会得到相同的输出。我在窗口计算机上使用 gcc。

标签: cwindowsgccdouble

解决方案


推荐阅读