定義的浮點型再寫到cpp的時候會多出很多999,
比如原始資料是 12.8356
json檔案輸出的資料是12.8355999999999
這裡的原因是因為jsoncpp官方問題參看這篇
解決方式就是把浮點型轉成字元型。
為了避免這種情況,查到乙個函式
doubletostring(這裡輸入double,精確度)#include std::string doubletostring(const double value, unsigned int precisionafterpoint)
注意精確度指的是總共幾位數,而不是精確到小數點後幾位。
比如12.34的精確度是4,而不是2。
參考這篇
iOS解析json 浮點型資料,精度丟失問題
服務端傳遞回來的是 保留小數點兩位的浮點型,ios端解析後,發現 取出欄位的doublevalue後 精度丟失,小數點後多了很多位 原值 71.20 解析後 71.199997 複製 原始資料 複製 import nsnumbertest.h nsstring const kbigdecimalnu...
浮點型資料精度丟失例項詳解
最近在學習資料型別的時候,遇到了浮點型資料精度丟失的問題,不是很理解,在這裡整理一下。將乙個十進位制浮點數轉變為二進位制,可以整數部分和小數部分分開來看。整數部分和十進位制整型資料轉二進位制的方法一樣,採用 除2取餘,逆序排列 法。具體做法是 用2去除十進位制整數,可以得到乙個商和餘數 再用2去除商...
浮點數精度丟失問題
c 中的浮點數,分單精度 float 和雙精度 double float 是 system.single 的別名,介於 3.402823e38 和 3.402823e38 之間的32位數字,符合二進位制浮點演算法的 iec 60559 1989 ieee 754 標準 double 是 system...