(1)在不呼叫庫函式的情況下,把浮點數轉化為字串的難點就在,把小數轉化為字串。因為浮點數的精度問題,當我們對浮點數進行乘10操作的時候,浮點數尾數數值可能就會發生變化,如float a=12.1047; a*=10;輸出a=121.046997。所以在把浮點數的小數轉化為字串時要對精度進行限制。
1 #include2 #include 3 #include 4view code5const
double eps = 1e-11;6
7void float_to_str(char *str,double
num)822
23for(i=n-1;i>=0;i--)
2627 num -= (int
)num;
28double tp = 0.1
;29 *str++='.'
;3031while(num > eps)
37 *str='\0'
;38 str=start;39}
40int
main()
4148
49 }
(2)如果使用庫函式sprintf(),這個題目就很簡單了,直接呼叫sprintf(),將浮點數格式化輸出到指定字串就好了。
sprintf( char *buffer, const char *format, [ argument] … );【sprintf()使用詳情請baidu】
1 #include2intmain()
3
16進製制字串轉化為浮點數
參考資料 1.2.3.問題 有時候在傳輸過程中會把浮點數使用如下形式儲存為二進位制形式 memcpy ibuf 4,f c0,sizeof float memcpy ibuf 4 4,f c1,sizeof float 在另一端怎麼將十六進製制形式的資料轉為浮點數呢?以下是簡單實現 include ...
PHP字串轉化為浮點數的坑
偶然發現,將資料庫內decimal 20,2 型別的資料查出來,乘以100並轉化成整數的不精確問題。如下 a 19.49 echo a a n var dump a 100 var dump intval a 100 var dump intval round a 100 a 29.49 echo ...
hive浮點數轉化為整數
1 round 四捨五入 round double d 返回double型的d的bigint型別的近似值 round double d,int 返回double型的d的保留n位小數的double型別的近似值 如 select round cust rate from tmp.test select ...