| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4815 人关注过本帖
标题:请问:什么函数可以把小数转换成字符串?(itoa()这种类型的转换函数。)
只看楼主 加入收藏
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
 问题点数:0 回复次数:4 
请问:什么函数可以把小数转换成字符串?(itoa()这种类型的转换函数。)
请问:什么函数可以把小数转换成字符串?(itoa()这种类型的转换函数。)
搜索更多相关主题的帖子: 小数 函数 itoa 字符 类型 
2007-08-07 04:25
dragonfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1024
专家分:0
注 册:2006-3-20
收藏
得分:0 

_ecvt Convert double to string of specified length
_fcvt Convert double to string with specified number of digits following decimal point
_gcvt Convert double number to string; store string in buffer


你可以查查这些函数的用法

2007-08-07 08:38
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 

ecvt
fcvt
gcvt
三个函数都可以


2007-08-07 09:06
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
得分:0 
多谢楼上两位。

胡文斌 本人论坛:http://hwbnet.bbs./
2007-08-07 22:05
hantaogo
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-5-11
收藏
得分:0 
//我写的转换函数,包括了一个测试函数,自己看吧,可以把输出语句的注释去掉,查看调试效果

int f2s(float f, char** buf)
{
    char bf[100];
    int i=0;
    int integer;
    float decimal;
    integer = (int)f;
    decimal = f - integer;
    //cout<<"整数部分:"<<integer<<endl;
    //cout<<"小数部分:"<<decimal<<endl;
    //cout<<"先确定正负号,如果是负号就把字符串的第一个赋值为'-',值取正,索引+1 "<<endl;
    if(f<0)
    {
        //printf("%d %c\n", '1', '1');
        //printf("%d %c\n", '-', '-');
        bf[0] = 45;
        integer = -integer;
        decimal = -decimal;
        i++;
    }
    int top=0;
    int stack[100];
    //cout<<"-------------------------------"<<endl;

    //cout<<"处理整数"<<endl;
    while( integer != 0 )
    {
        stack[top] = integer%10;
        top++;
        integer /= 10;
    //    cout<<"当前整数值:"<<integer<<endl;
    }
//    cout<<"当前栈:"<<endl;
//    for(int t=0; t<top; t++)
    //    cout<<t<<"="<<stack[t]<<endl;
//    cout<<"填入字符串"<<endl;
    for(int t=top-1; t>=0; t--)
    {
        //因为1是49所以n是n+48
        bf[i] = stack[t]+48;
    //    printf("%d ", bf[i]);
        i++;
    }
    cout<<endl;
    for(int t=0; t<i; t++)
    {
//        printf("%s", bf);
    }
//    cout<<"-------------------------------"<<endl;
    bf[i] = '.';
        i++;
    //cout<<"处理小数"<<endl;
    //decimal
    //只计算到6位
    for(int t=0; t<7; t++)
    {
        bf[i] = int(decimal*10.0f) + 48;
    //    cout<<"()"<< int(decimal*10.0f)<<endl;
        i++;
        decimal = decimal*10.0f;
        decimal = decimal - (int)decimal;
    //    cout<<"当前小数部分:"<<decimal<<endl;
    }
    //cout<<"===========end================="<<endl;

    //cout<<bf<<endl;
    *buf = (char*)malloc(i+1);
    for(int t=0; t<i; t++)
        (*buf)[t] = bf[t];
    (*buf)[i] = '\0';

    //返回字符串的长度
    return i+1;
}

void test_f2s()
{
    char *buf;
    float f = -31234.12345678f;
    float f2 = 31234.7654321f;
    printf("%f\n", f);
    printf("%f\n", f2);
    f2s(f, (char**)&buf);
    cout<<"1: "<<buf<<endl;
    free(buf);
    f2s(31234.7654321, (char**)&buf);
    cout<<"2: "<<buf<<endl;
    free(buf);
    f2s(f, (char**)&buf);
    for(int i=0; buf[i] != '\0'; i++)
    {
        printf("%c", buf[i]);
    }
    cout<<endl;
    free(buf);
}

void main()
{
    test_f2s();
}
2010-08-24 21:29
快速回复:请问:什么函数可以把小数转换成字符串?(itoa()这种类型的转换函数。 ...
数据加载中...
 
   



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

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