cJSON精度丟失問題

2021-09-21 05:15:07 字數 375 閱讀 6391

問題復現步驟:

1) 輸入字串:

2) 字串轉成cjson物件

3) 呼叫cjson_print將cjson物件再轉成字串

4) 再將字串轉成cjson物件

5) 保留8位精度方式呼叫printf列印值,輸出變成:0.123456

問題的原因出在cjson的print_number函式:

static char *print_number(cjson *item)

else

} return str; }

最後乙個sprintf呼叫沒有指定保留的精度,預設為6位,這就是問題的原因。

注:float的精度為6~7位有效數字,double的精度為15~16位。

js tofixed精度丟失問題

tofixed 方法可把 number 四捨五入為指定小數字數的數字。例如將資料num保留2位小數,則表示為 tofixed num 但是其四捨五入的規則與數學中的規則不同,使用的是銀行家捨入規則,銀行家捨入 所謂銀行家捨入法,其實質是一種四捨六入五取偶 又稱四捨六入五留雙 法。具體規則如下 簡單來...

Long型別精度丟失問題

js long型別經度丟失 解決方案 後端將long型別引數轉為字串後返回給前端 在單個long型別的引數上加上 import com.fasterxml.jackson.databind.annotation.jsonserialize jsonserialize using tostringse...

運算精度丟失和數值丟失問題

標籤 空格分隔 程式設計競賽 程式設計錯題 在做題時,我經常會碰到程式很對,但結果出錯的問題。如下面這個。題目描述 經常出國旅行的驢友都知道,需要及時了解當地的氣溫狀況。但不少國家採用了不同的溫度計量單位 有些使用華氏溫度標準 f 有些使用攝氏溫度 c 現在,請你根據溫度轉換公式設計乙個溫度轉換程式...