博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何输出long double?
阅读量:7041 次
发布时间:2019-06-28

本文共 730 字,大约阅读时间需要 2 分钟。

首先long double是C99引入的,但是如何printf格式化一个long double的数据的呢?

scanf一个double数据,是%lf,printf一个float或者double都是%f。

但是输出一个long double是什么格式呢?

这个时候,我们需要c标准:

7  The length modifiers and their meanings are: 第七节,长度修饰符及其含义是:

截取需要部分,

 

指定以下d,i,o,u,x或X转换说明符适用于

long int或unsigned long int参数; n 转换说明符适用于指向long int参数的指针; c 转换说明符适用于wint_t参数;  s 转换说明符适用于指向wchar_t参数的指针; 或对以下a,e,e,E,f,F,g或G转换没有影响

由于 ll与l描述很相近,不再翻译。

再看大写的L:

指定以下a,A,e,E,f,F,g或G转换说明符适用于long double参数。

如果一个长度修饰符出现在除上述指定的任何转换说明符之外, 这种行为是未定义的。

后面是一个f与F的解释:

 

我想此刻结论已经明显了:

 

#include
int main(void){ long double std_test=1.2345; printf("%Lf\n",std_test); return 0;}

 

大写L,加f输出long double。最后的f小写和大写没影响,但是第一个 l 必须大写成L。

如果写成小写l加f的格式,会报类型不兼容,这样也达不到比double还高的精度。

所以,c标准还是开发不可或缺的参考资料。

转载地址:http://qfxal.baihongyu.com/

你可能感兴趣的文章
Spring源码分析:BeanPostProcessor原理
查看>>
Kubernetes审计日志方案
查看>>
Dva.js总结
查看>>
将 vue 项目运行在 docker 的 nginx 容器中
查看>>
snabbdom源码解析(一) 准备工作
查看>>
带你了解webpack
查看>>
基于 Postgres 实现一个热度算法
查看>>
Go基础学习记录 - 编写Web应用程序 - 博客编辑功能完善
查看>>
快速学习nodejs系列:十三、nodejs实现restful api、cookie、session、爬虫小例子
查看>>
【CSS】CSS 世界 -- 元素的显示与隐藏学习总结
查看>>
据说这道JAVA基础题,面试中给出正确答案的人数不到32%
查看>>
yum - epel源
查看>>
胶囊网络到底是什么东东?
查看>>
Vue中响应式数据失效&Dom操作无效问题
查看>>
【前端芝士树】Js中的闭包是怎么一回事 && 笔试问题集锦
查看>>
【基础】固定列宽的表格及示例演示
查看>>
yarn简介
查看>>
基于H5实现的react拖拽排序组件
查看>>
【Flutter 学习笔记二】Dart 的基础概念和数据类型
查看>>
zepto源码ajax模块学习
查看>>