五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ESP8266,Nonos SDK,添加浮點Json數(shù)據(jù)的方法

2022-04-03 15:24 作者:虎鷹0  | 我要投稿

確定浮點數(shù)要保留的位數(shù),將數(shù)字轉(zhuǎn)成字符,用Json庫里添加原始數(shù)據(jù)的形式,把轉(zhuǎn)換后的字符加到字段值里。

// 18后面跟18個0,18446744073709551615

static const unsigned long long int dec_table[]=

{

? ? 1,

? ? 10,

? ? 100,

? ? 1000,

? ? 10000,

? ? 100000,

? ? 1000000,

? ? 10000000,

? ? 100000000,

? ? 1000000000,

10000000000,

100000000000,

1000000000000,

10000000000000,

100000000000000,

1000000000000000,

10000000000000000,

100000000000000000,

1000000000000000000,

? ? 18446744073709551615,? ?// Max unsigned long long int

};

#define TABLE_MAX? (18)



//?sprintf更換成os_sprintf

char*? FloatToStr(double num, unsigned int digit_num, char* buff)

{

? ? double? d_temp;


? ? unsigned long long int uint64;


? ? unsigned char int_len;

? ? unsigned char i;


? ? if (num > dec_table[TABLE_MAX])? // 整數(shù)部分,最大1后面18個0

? ? {

? ? ? ? sprintf((char*)(buff),"%s","0");

? ? ? ? return buff;

? ? }


? ? i = 0;

? ? if ( num < 0 )? // 添加負(fù)號

? ? {

? ? ? ? d_temp = - num;

? ? ? ? sprintf((char*)(buff+i),"%s","-");

? ? ? ? i++;

? ? }

? ? else

? ? {

? ? ? ? d_temp = num;

? ? }

? ? uint64 = (unsigned long long int)d_temp;? ? // 取整數(shù)部分

? ? sprintf((char*)(buff+i),"%lld",uint64);? ? ?// 添加整數(shù)部分


? ? if ( digit_num == 0 )? ? ? ? ? ? ? ? ? ? ? ?// 不要小數(shù)部分,到此就可以了

? ? {

? ? ? ? return (char* )buff;

? ? }


? ? // 判斷整數(shù)部分長度,確定小數(shù)點的位置

? ? for ( int_len = 0; int_len < 15; int_len++) // 結(jié)束后 (buff+i) 指向小數(shù)點

? ? {

? ? ? ? if ( uint64 < dec_table[int_len] ) // 0-1; 1-10;? ?2-100;? 3-1000

? ? ? ? {

if(int_len == 0)

{

i++;? ? // 整數(shù)小于1,也要占一位

}


? ? ? ? ? ? break;

? ? ? ? }

i++;

? ? }

? ? sprintf((char*)(buff+i),"%s",".");

? ? i++;? ? // (buff+i) 指向小數(shù)點后第一位


? ? d_temp = d_temp - (double)uint64;


? ? if ( (digit_num+1) > TABLE_MAX )

? ? {

? ? ? ? digit_num = TABLE_MAX-1;

? ? }


? ? uint64 = (unsigned long long int)((double)d_temp*(double)dec_table[digit_num+1] - 0.00000000000000001);? ? // 防止小數(shù)部分溢出

? ? uint64 = uint64/10;


? ? for ( ; (uint64 < dec_table[digit_num-1]); digit_num--)

? ? {

? ? ? ? if ( digit_num <= 1)

? ? ? ? {

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? sprintf((char*)(buff+i),"%d",(int)0);

? ? ? ? i++;

? ? }

? ? sprintf((char*)(buff+i),"%lld",uint64); // 添加小數(shù)部分


? ? return (char* )buff;

}




#define cJSON_AddNumberFloatToObject(object,name,num,digit_num,buff) cJSON_AddItemToObject(object, name, cJSON_CreateRaw(FloatToStr(num, digit_num, buff)))


ESP8266,Nonos SDK,添加浮點Json數(shù)據(jù)的方法的評論 (共 條)

分享到微博請遵守國家法律
庆城县| 亚东县| 海盐县| 乌兰察布市| 赫章县| 若羌县| 安阳县| 新和县| 丹阳市| 梁平县| 玛纳斯县| 金湖县| 都匀市| 佛学| 清远市| 深圳市| 墨竹工卡县| 崇信县| 江门市| 宁海县| 简阳市| 铜川市| 沙雅县| 九寨沟县| 景东| 垣曲县| 新绛县| 元谋县| 台安县| 新平| 潞西市| 卢湾区| 大邑县| 大化| 博野县| 吉林市| 灵川县| 定结县| 华池县| 海丰县| 修武县|