浮點數轉化為字串

2021-07-11 11:02:51 字數 801 閱讀 9868

(1)在不呼叫庫函式的情況下,把浮點數轉化為字串的難點就在,把小數轉化為字串。因為浮點數的精度問題,當我們對浮點數進行乘10操作的時候,浮點數尾數數值可能就會發生變化,如float a=12.1047; a*=10;輸出a=121.046997。所以在把浮點數的小數轉化為字串時要對精度進行限制。

1 #include2 #include 3 #include 4

5const

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 }

view code

(2)如果使用庫函式sprintf(),這個題目就很簡單了,直接呼叫sprintf(),將浮點數格式化輸出到指定字串就好了。

sprintf( char *buffer, const char *format, [ argument] … );【sprintf()使用詳情請baidu】

1 #include2

intmain()

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 ...