色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json 保留小數(shù)位

錢斌斌2年前9瀏覽0評論

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ù),代碼簡潔明了。