• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            ?

            ???? 可能有好多人,包括C語言老手都不知道如何將float數據轉換為string,我就是這樣,今天查了一下MSDN,才知道C提供了_gcvt函數實現這個功能,收獲著實不小,為了方便自己查詢,也為了那些像我這樣的網友能夠了解該函數的具體用法,我把MSDN的原文原封不動抄錄如下:

            _gcvt

            Converts a floating-point value to a string, which it stores in a buffer.

            char *_gcvt( double value , int digits , char * buffer );

            Routine Required Header Compatibility
            _gcvt <stdlib.h> Win 95, Win NT

            For additional compatibility information, see Compatibility in the Introduction.

            Libraries

            LIBC.LIB Single thread static library, retail version
            LIBCMT.LIB Multithread static library, retail version
            MSVCRT.LIB Import library for MSVCRT.DLL, retail version

            Return Value

            _gcvt returns a pointer to the string of digits. There is no error return.

            Parameters

            value

            Value to be converted

            digits

            Number of significant digits stored

            buffer

            Storage location for result

            Remarks

            The _gcvt function converts a floating-point value to a character string (which includes a decimal point and a possible sign byte) and stores the string in buffer. The buffer should be large enough to accommodate the converted value plus a terminating null character, which is appended automatically. If a buffer size of digits + 1 is used, the function overwrites the end of the buffer. This is because the converted string includes a decimal point and can contain sign and exponent information. There is no provision for overflow. _gcvt attempts to produce digits digits in decimal format. If it cannot, it produces digits digits in exponential format. Trailing zeros may be suppressed in the conversion.

            Example

            								/* _GCVT.C: This program converts -3.1415e5 * to its string representation. */#include <stdlib.h>#include <stdio.h>void main( void ){   char buffer[50];   double source = -3.1415e5;   _gcvt( source, 7, buffer );   printf( "source: %f  buffer: '%s'\n", source, buffer );   _gcvt( source, 7, buffer );   printf( "source: %e  buffer: '%s'\n", source, buffer );}
            						

            Output

            								source: -314150.000000  buffer: '-314150.'source: -3.141500e+005  buffer: '-314150.'
            						


            Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=708935


            [收藏到我的網摘]?? skyman_2001發表于 2006年05月05日 11:28:00



            #??lanno?發表于2006-05-05 18:26:00??IP: 222.35.68.*
            長見識了,俺總是這樣轉化的:
            char str[260];
            float f = -3.1415926;
            float f1 = 263e-5;
            sprintf(str,"%f",f);
            printf("%s\n",str);
            sprintf(str,"%f",f1);
            printf("%s\n",str);

            #??Skyman?發表于2006-05-05 21:35:00??IP: 202.202.10.*
            你這樣做也行
            但沒有這樣靈活
            是吧?

            #??zhnde?發表于2006-05-11 20:15:00??IP: 129.69.212.*
            靈活嗎? 能具體解釋一下嗎?

            #??Skyman?發表于2006-05-11 22:03:00??IP: 202.202.10.*
            至少可以方便的控制有效數字的位數啊。

            #??ztwaker?發表于2006-07-28 12:40:00??IP: 61.144.207.*
            /*C++ impl*/
            string cvt(const float fval)
            {
            stringstream ss;
            ss << fval;
            return ss.str();
            }

            ......///

            #??ztwaker?發表于2006-07-28 12:46:00??IP: 61.144.207.*
            加上有效數字位數控制

            string cvt(const float f, const int prec)
            {
            stringstream ss;
            ss.precision(prec);
            ss << f;
            return ss.str();
            }

            posted on 2006-12-15 11:18 清源游民 閱讀(9241) 評論(1)  編輯 收藏 引用 所屬分類: C++

            FeedBack:
            # re: 如何將float轉換為string
            2011-09-06 09:56 | 明樣
            不知道_gcvt是C標準函數還是只是MS的擴展?
            如果不是標準函數的話還是不建議使用,沒有移值性就談不上靈活……  回復  更多評論
              
            <2007年4月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            留言簿(35)

            隨筆分類(78)

            隨筆檔案(74)

            文章檔案(5)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            精品一区二区久久久久久久网站| 亚洲国产成人久久精品动漫| 久久综合精品国产一区二区三区| 国内精品久久久久久中文字幕| 国内精品伊人久久久久影院对白| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久99精品国产麻豆婷婷| 超级碰久久免费公开视频| 久久伊人亚洲AV无码网站| 一个色综合久久| 久久电影网一区| 99久久国产亚洲综合精品| 色综合合久久天天给综看| 欧美日韩精品久久久久| 国产精品久久久久久吹潮| 久久久久国产日韩精品网站| 麻豆成人久久精品二区三区免费 | 久久久久久噜噜精品免费直播| 久久只有这精品99| 久久精品国产半推半就| 国产欧美久久久精品影院| 久久久久久综合一区中文字幕| 综合久久一区二区三区 | 狠狠色丁香婷综合久久| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产精品久久久久久久午夜片| 综合久久国产九一剧情麻豆| 久久精品亚洲男人的天堂| 99久久精品费精品国产一区二区| 四虎影视久久久免费观看| 18岁日韩内射颜射午夜久久成人| 性欧美大战久久久久久久久| 亚洲七七久久精品中文国产| 亚洲午夜精品久久久久久人妖| 久久香蕉超碰97国产精品| 久久精品国产日本波多野结衣| 日本国产精品久久| 欧洲性大片xxxxx久久久| 久久人人爽人人爽人人片AV麻豆 | 狠狠色丁香婷婷久久综合五月| 久久AAAA片一区二区|