zoukankan      html  css  js  c++  java
  • C语言 提取double的每一位

    #include<stdio.h>
    int main()
    {
        double x = 256.141592654;
        int n = (int)x % 1000; //整数部分
        while(n) //整数部分输出
        {
            int temp = n % 10;
            n /= 10;
            printf("%d
    ", temp);
        }
    
        int i = 5;
        while(i>0) //输出5位小数
        {
            x = x*10;
            printf("%d
    ",(int)x%10);  //强制将double转换成int,因为求余(%)必须为int类型,
            i--;
        }
    
        return 0;
    }

    附:C语言,如何输出每一位数字? https://zhidao.baidu.com/question/584309257492424645.html

    一、传统方法,通过除法和模除,取出每一位,并输出。

    #include<stdio.h>
    void output(int n)
    {
        int a[10];
        int l=0;
        /*
        循环获取每一位的值,并存到数组a中。
        其中l表示已经获取到的位数。
        由于每次获取的是个位n%10,所以存在数组a中的是各个位数的逆序。
        */
        while(n)
        {
            a[l++] = n%10;
            n/=10;
        }
        //反序输出每一位值。
        while(--l>=0) 
            printf("%d ", a[l]); 
    }
    int main()
    {
        int n;
        scanf("%d",&n);//输入n值。
        output(n);//输出各个位。
        return 0;
    }

    二、转为字符串,然后输出字符串各个字符。

    由于在C语言中,有很多库函数,比如itoa, sprintf等,都可以很方便的将整数转为字符串,而逐位输出字符串各个字节值是很简单的,所以可以通过转为字符串,再输出的方式输出各个位的值。

    #include<stdio.h>
    void output(int n)
    {
        char a[11];
        int i;
        sprintf(a, "%d", n);//转为字符串。
        for(i = 0; a[i]; i++)//遍历字符串。
            printf("%c ", a[i]);//输出各个位值。
    }
    int main()
    {
        int n;
        scanf("%d",&n);//输入n值。
        output(n);//输出各个位。
        return 0;
    }
  • 相关阅读:
    《linux 必读》
    ldd ldconfig
    rpm 数据库
    /bin, /sbin & /usr/bin, /usr/sbin & /usr/local/bin, /usr/local/sbin & glibc
    POSIX
    CentOS 下载地址
    insert into TABLE by SELECT ...
    httpd 处理模型
    http 状态码
    IP地址 0.0.0.0 是什么意思?
  • 原文地址:https://www.cnblogs.com/tanrong/p/7200334.html
Copyright © 2011-2022 走看看