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中!
怎么办?
谢谢!

参考技术A 你到底想干嘛?
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中实现基本数据类型与字符之间的转换

matlab 中如何将double 型转换为 char

java中怎样把double基本数据类型包装在Double类

C语言中 怎样把一个int转换成char

java 变量数据类型转换?byte, short, char, int, long, float, double

open cv mat怎样将数据类型转化为double