c - 在 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。
解决方案
推荐阅读
- git - 使用 git 删除已删除的文件夹
- wso2esb - WSO2 esb 在什么情况下端点可以处于关闭状态
- php - TCPDF:getimagesize():SSL 操作失败,代码 1 错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败
- git - 当合并来自源分支的某些文件时,目标分支中没有显示?
- django - 在 git 分支之间维护数据库表字段的最佳方法是什么?
- javascript - 在 JavaScript 中是否有一种简单的方法来获取 url 指向的字符串?
- mysql - 如何根据mysql中的两列连接表?
- php - phpmailer电子邮件发送不起作用
- ssrs-2008 - 将时间转换为 ssrs 中的两倍
- python - 从 Python 数据框中提取值