zoukankan      html  css  js  c++  java
  • 如何输出long double?

    首先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<stdio.h>
    
    int main(void)
    {
        long double std_test=1.2345;
        printf("%Lf
    ",std_test);
        
        return 0;
    }

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

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

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

  • 相关阅读:
    C# 反射机制(转)
    asp.net 控件开发(三)处理标签间内容
    WCF学习(三)数据契约1
    个人的一点私事
    Asp.net 控件开发(四) 数据回传
    WCF学习 (四) 数据契约的事件
    wcf学习(一):预览
    WCF学习(二)服务契约
    css3图片3D翻转
    Javascript面向对象(一)(共有方法,私有方法,特权方法)
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7085661.html
Copyright © 2011-2022 走看看