前文:
??????C語言char數組/uint8_t數組轉float類型,可用于單片機
再提供一個float轉char數組的,因為用sprintf的話在stm32c8t6里容易卡死,不知道什么原因,所以手擼了一個
//float轉char數組,一次轉一個
void float2char(float value/*需要轉換的值*/,char* cSendBuff/*結果存儲的數組*/, int Decimals/*小數位的長度*/)int i = 1, k = 0;int integer = abs(value);//整數部分int decimal = (abs(value) - integer)*pow(10, Decimals);//小數部分int temp = integer;if (value < 0)cSendBuff[k++] = '-';//如果小于0,加個負號while (temp /= 10){i*=10;}while (integer) {cSendBuff[k++] = integer / i + '0';integer %= i;i /= 10;}if (Decimals == 0) { //如果沒有小數位,直接返回cSendBuff[k++] = '\0';return;}cSendBuff[k++] = '.'; //加小數點temp = decimal;i = 1;while (temp /= 10){i *= 10;}while (decimal) {cSendBuff[k++] = decimal / i + '0';decimal %= i;i /= 10;}cSendBuff[k++] = '\0';}
intfloatchar區別,
使用例程:
float value = 12562.1542;
char a[50] = { 0 };
float2char(value, a, 4);
cout << "譯碼結果:" << a << endl;
接下來如果需要把單個的字符串連接成長的字符串,可以調用strcat()。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态