1樓:豬大毛
float a = 0.111;
printf("%f", fl)
./main > txt
File *f = fopen("txt")Read(f) -_-
2樓:邵老師
浮點數分成整數和小數兩個部分,分別進行單獨處理,最後和小數點符號合成乙個字串。
#include
#include
using namespace std;
string GetFront(int Front)c = '0';
c += shang;
strFront.push_back(c);
string a;
while(!strFront.empty())return a;
}string GetBehind(float Behind)return strBehind;
}void main()
結果如下:
3樓:暮無井見鈴
只考慮 double 的精確表示話可以這樣:
弄個陣列存 2^-1074 到 2^1023 的十進位制表示,列印時挨個加上。
4樓:9chu
實現string->float簡單一些。甚至可以參照http://json.org
上面解析數字的狀態轉移圖來寫。
float->string非常非常複雜。因為浮點數可以有幾種不同的輸出方式:最短長度、n位固定小數字數、n位有效數字輸出等等。
可以看看 google/double-conversion (建議直接用)
5樓:SuperFashi
原來要自己手動實現啊,這種東西沒啥演算法,就是好好看二進位制格式就行。
比如char*轉浮點比較容易,每一位遍歷,遇到小數點標記一下後面有多少位,最後除一下就好。
浮點轉char*,兩種方法,第一種精度不高的,一邊存一邊在浮點數上做運算;另一種就是按二進位制處理,把符號位、指數字和尾數字分開處理。
—————
因為C裡要變長只能手動申請,除非用別人的庫,只能不停的比較,不夠就realloc或者重新malloc。
char* 轉浮點還是比較簡單的,atof/strtof都行。
為什麼叫浮點數
道不輕傳 定點數能表示的數字有限,因為小數點固定,整數字和小數字就固定,就不利於表達特別大或特別小的數,浮點數就可以表示很大或很小的數字,因為小數點不固定,比如 123.45 用十進位制科學計數法可以表達為 1.2345 10 其中 1.2345 為尾數,10 為基數,2 為指數。浮點數利用指數達到...
浮點數如何轉換為定點數?
Aman 按 IEEE754 標準,float 的格式是 binary32,double 的格式是 binary64,浮點數中的有效數字 significant 部分其實可以理解為是乙個定點數,只不過有指數 exponent 部分做了小數點偏移 類似科學計數法,只不過是二進位制的,浮點數因此得名 我...
浮點數是如何計算hash的?
hash的本質是對二進位制串進行操作,只要有一位不同hash結果就差千萬里。那麼,你的問題就是先把相近的值用相同的二進位制串表達,然後去計算hash。具體怎麼定義相近,就由你自己實現。最簡單的辦法就是用吧。這裡的公式編輯器不支援分數麼? 如何保證被看做相等的兩個數值非常接近的浮點數hash到相同的值...