double和char之间怎样转换?谢谢!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了double和char之间怎样转换?谢谢!相关的知识,希望对你有一定的参考价值。
在C中,double是64位的,char是8位的。
现在,我想把一个double变量,存到8个char中;
或将8个char中的内容依次存入一个double中。
有办法吗?
例如:
double d=10;
char ch[8];
现在,想要把变量d存入ch数组中;
或者,把ch数组存入double中!
怎么办?
谢谢!
double d=2.5;
char ch;
ch=(char)d;
printf("%c\n",ch);
强制转换要求与目标类型相同
不同类型之间可以强制转换,但可能有损失,比如
把float value=2.5,强制转换为int a=(int)value,就会损失小数部分。所以能不进行强制转换,就尽量不要用。
至于将8个char中的内容依次存入一个double中还没有这种说法。 参考技术B 你把他的每一位数字都分开放在数组中就行了。。例如把111254562放在数组中就是ch[0]=1,ch[1]=1,ch[2]=1.....ch[8]=2就行了 参考技术C 貌似比较麻烦 高人请指点 2L的 有没有通用的方法 就是不管输入数据时多少 都行的 参考技术D 1. d --> ch: memcpy(ch, &d, 8);
2. ch --> d: memcpy(&d, ch, 8);本回答被提问者采纳
Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数
如何轻松玩转Arduino单片机,当我在进行数据转换的时候,遇到了问题,尝试了C语言和C++中的好多函数,都没有达到将float型数据转换为char型的目的。苦苦查阅资料后,终于找到了一个大神级函数!!!dtostrf(),可以轻松实现数据类型from float to char . get it
格式如下:
char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s)
参数说明:
_val:要转换的float或者double值。
_width:转换后整数部分长度。
_prec:转换后小数部分长度。
_s:保存到该char数组中。
示例如下:
float f=3.1415;
char c[];
dtostrf(f,1,2,c);
Serial.println(c);
此时从Arduino自带串口监视器中将输出3.14,即成功实现了数据类型转换。
数据转换之后,我们可以对字符串进行一个拼接。如下,将实现字符串的拼接
float f=3.1415;
char c[];
dtostrf(f,1,2,c);
Serial.println(c);
//定义一个字符串
char s[]="///sensor1///ly///sensor1///PM2.5///100.70///";
//进行字符串拼接操作
strcat(s,c);
Serial.println(s);
此时将在Arduino自带串口监视器中将输出///sensor1///ly///sensor1///PM2.5///100.70///3.14,即成功实现了字符串的拼接。特别说明:Arduino中可以直接调用C语言中的strcat()函数来实现对字符串的拼接。
以上是关于double和char之间怎样转换?谢谢!的主要内容,如果未能解决你的问题,请参考以下文章
java中怎样把double基本数据类型包装在Double类