| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:怎么编一个c语言可以把变量值,例如:输入一个值b=345.543,把它以字符形势 ...
只看楼主 加入收藏
windwing817
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-6-12
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:3 
怎么编一个c语言可以把变量值,例如:输入一个值b=345.543,把它以字符形势储存在char c[33]z中
我今天编了一个   最后没保存 没了   但存在很多问题    只有整数的时候 数字超过8,9个后面就会显示错误    定义一个float   b   输入数  31.1    调试的时候  它的数显示是31.10000001类似这样的  求大神帮忙   


求解决方案  不一定要程序写出来  希望能详细些   本人是初学者
搜索更多相关主题的帖子: 解决方案 c语言 
2012-06-14 18:45
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:7 
程序代码:
#include <stdio.h.>

int main(void)
{
    float b = 0;
    scanf("%f",&b);
    printf("%5f",b);
    return 0;
}
2012-06-14 18:53
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
百度上的一个方法,你可以参考下


#include <stdio.h>
void main()
{
   //存储可能用到的字符
    char dictionary[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
   //转换后存储在字符数组中
    char str[8];
   //临时字符数组空间
    char tmp_array[8];
   //输入的浮点数
    float f_num = 0.0;
   //浮点数临时变量
    float f_num_tmp = 0.0;
   //浮点数整数部分
    int int_tmp;
   //小数点后的数
    int tmp;
   //标志位
    int i = 0, j = 0;
   //统计字符数
    int count = 0;
   //输入数字
    scanf("%f",&f_num);
   //分离出整数部分
    int_tmp = f_num;
    //将整数部分按倒序存入tmp_array
    while(int_tmp)
    {
        tmp = int_tmp%10;
        tmp_array[count] = dictionary[tmp];
        int_tmp = int_tmp/10;
        count++;
    }
    //重新记录int_tmp的值
    int_tmp = f_num;
   
    j = count-1;
    //按正序将整数部分存入
    for(i=0;i!=count;i++)
    {
        str[i] = tmp_array[j];
        j--;
    }
    //存入小数点
    str[i] = '.';
    count++;
    f_num_tmp = ( f_num - int_tmp)*10;
    //存入小数部分
    while((int)f_num_tmp)
    {
        tmp = f_num_tmp;
        str[count] = dictionary[tmp];
        f_num_tmp = (f_num_tmp-tmp)*10;
        count++;
        if(count==8){
            str[7] = '\0';
            break;
        }
    }
    for(i = 0;i!=8;i++)
    {
        printf("%c",str[i]);
    }
}

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-06-16 06:17
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:7 
print的时候用:
    printf("%.1lf",b);    //  .1表示保留一位小数。。想保留多少位,就点多少就好了,例如5位小数就 .5       如果数据太长的话,把f变成lf,就可以保存更多的位数了
2012-06-16 07:50
快速回复:怎么编一个c语言可以把变量值,例如:输入一个值b=345.543,把它以字符 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028932 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved