C JSON 保留小數(shù)位
在 C 語言中使用 JSON 處理數(shù)據時,有時需要保留小數(shù)位。下面介紹兩種方法。
方法一:使用 sprintf 函數(shù)
sprintf 函數(shù)可以將浮點數(shù)轉換為字符串,并指定小數(shù)位數(shù)。示例代碼如下:
#include <stdio.h> #include <stdlib.h> #include <cJSON.h> int main() { double num = 12.3456; char str[32]; cJSON *root = cJSON_CreateObject(); sprintf(str, "%.2f", num); cJSON_AddItemToObject(root, "num", cJSON_CreateString(str)); char *json_str = cJSON_Print(root); printf("%s\n", json_str); free(json_str); cJSON_Delete(root); return 0; }
方法二:使用 cJSON_SetNumberHelper 函數(shù)
cJSON_SetNumberHelper 函數(shù)可以設置浮點數(shù)的小數(shù)位數(shù)。示例代碼如下:
#include <stdio.h> #include <cJSON.h> int main() { double num = 12.3456; cJSON *root = cJSON_CreateObject(); cJSON_SetNumberHelper(&num, "%.2f"); cJSON_AddItemToObject(root, "num", cJSON_CreateNumber(num)); char *json_str = cJSON_Print(root); printf("%s\n", json_str); free(json_str); cJSON_Delete(root); return 0; }
總結
無論是使用 sprintf 函數(shù)還是使用 cJSON_SetNumberHelper 函數(shù),都可以保留浮點數(shù)的小數(shù)位數(shù)。但使用 sprintf 函數(shù)需要將浮點數(shù)轉換為字符串,可能會影響程序性能,而使用 cJSON_SetNumberHelper 函數(shù)可以直接設置浮點數(shù)的小數(shù)位數(shù),代碼簡潔明了。
上一篇c json 保存
下一篇python 批量重命名