• <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數(shù)據(jù)轉(zhuǎn)換為string,我就是這樣,今天查了一下MSDN,才知道C提供了_gcvt函數(shù)實(shí)現(xiàn)這個(gè)功能,收獲著實(shí)不小,為了方便自己查詢,也為了那些像我這樣的網(wǎng)友能夠了解該函數(shù)的具體用法,我把MSDN的原文原封不動(dòng)抄錄如下:

            _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


            [收藏到我的網(wǎng)摘]?? skyman_2001發(fā)表于 2006年05月05日 11:28:00



            #??lanno?發(fā)表于2006-05-05 18:26:00??IP: 222.35.68.*
            長見識(shí)了,俺總是這樣轉(zhuǎn)化的:
            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?發(fā)表于2006-05-05 21:35:00??IP: 202.202.10.*
            你這樣做也行
            但沒有這樣靈活
            是吧?

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

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

            #??ztwaker?發(fā)表于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?發(fā)表于2006-07-28 12:46:00??IP: 61.144.207.*
            加上有效數(shù)字位數(shù)控制

            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) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C++

            FeedBack:
            # re: 如何將float轉(zhuǎn)換為string
            2011-09-06 09:56 | 明樣
            不知道_gcvt是C標(biāo)準(zhǔn)函數(shù)還是只是MS的擴(kuò)展?
            如果不是標(biāo)準(zhǔn)函數(shù)的話還是不建議使用,沒有移值性就談不上靈活……  回復(fù)  更多評(píng)論
              
            <2007年3月>
            25262728123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            留言簿(35)

            隨筆分類(78)

            隨筆檔案(74)

            文章檔案(5)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产精品永久久久久久久久久| 无遮挡粉嫩小泬久久久久久久| 国产三级精品久久| 亚洲v国产v天堂a无码久久| 一本色道久久99一综合| 色综合久久精品中文字幕首页| 久久久九九有精品国产| 亚洲一级Av无码毛片久久精品| 久久一日本道色综合久久| 精品久久久久久无码中文字幕 | 精品综合久久久久久97超人| 久久人妻少妇嫩草AV无码蜜桃| 久久ww精品w免费人成| 久久AV无码精品人妻糸列| 精品久久综合1区2区3区激情| 久久热这里只有精品在线观看| 无码国内精品久久人妻麻豆按摩 | 国产精品久久久久久| 久久精品国产免费观看三人同眠| 亚洲精品国产成人99久久| 久久国产乱子精品免费女| 日本免费久久久久久久网站| 国产91色综合久久免费| 色综合合久久天天综合绕视看| 国产一级做a爰片久久毛片| 狠狠色综合网站久久久久久久| 青青热久久国产久精品| 亚洲va久久久噜噜噜久久狠狠| 精品国产福利久久久| 少妇被又大又粗又爽毛片久久黑人 | 久久亚洲中文字幕精品一区| 99精品国产99久久久久久97 | 一级做a爰片久久毛片看看| 久久精品极品盛宴观看| 久久精品国产99国产精品澳门| 一级做a爰片久久毛片看看| 国产精品无码久久四虎| 久久电影网一区| 国産精品久久久久久久| 99热热久久这里只有精品68| 国产精品久久久久9999高清|