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;
    }
  • 相关阅读:
    Golang Channel用法简编
    一个有关Golang变量作用域的坑
    Goroutine是如何工作的
    Go语言是如何处理栈的
    Go与C语言的互操作
    Lua虚拟机初始化
    lua 函数调用 -- 闭包详解和C调用
    c++对象导出到lua
    nginx缓存设置proxy_cache
    golang中map并发读写问题及解决方法
  • 原文地址:https://www.cnblogs.com/tanrong/p/7200334.html
Copyright © 2011-2022 走看看