double与Char互换

lonet 2009-07-09 03:21:47
怎么将Double与Char类型的数据互换呢?
...全文
1681 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

沒有Char 只有 char
轉型的話
char ch = 'A';
double num = (double)ch;這樣強行轉換是可以的

反過來當然也行
double num = 70;
char ch = (char)num;
這樣就行了

不過問題是不能讓num數值超過char能紀錄的範圍
否則的話會出錯

要是 char *ar = "12.34"轉換成數字的……
[/Quote]谢谢大大,今天就遇见了超范围出错的,全返回20,正莫名其妙
liu_ri 2009-07-16
  • 打赏
  • 举报
回复
学习
wxdcxp 2009-07-16
  • 打赏
  • 举报
回复
static_cast <类型名 > (变量)
Mingci_c 2009-07-15
  • 打赏
  • 举报
回复
有偿提问是一种美德
小枫 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 benqxiaochen 的回复:]
强制类型转换,只需要
按照
(类型名)变量名
这属于c的编程风格
[/Quote]
这个就可以吧!
Papyna 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 laiwing 的回复:]
引用 8 楼 Papyna 的回复:
用sscanf吧,atoi和itoa这些不是标准拓展,跨平台移植会很麻烦的


atoi atif atil 這些標轉函數庫裡面就有了
[/Quote]

有atoi,但是没有itoa,所以许多时候不要投机取巧好么,不是人人都用最新的CRT的。

不可否认MSVC的确是很方便,不过也培养了一大堆只能在Windows下编程的人。
a85400448 2009-07-11
  • 打赏
  • 举报
回复
学习 学习 感谢
laiwing 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Papyna 的回复:]
用sscanf吧,atoi和itoa这些不是标准拓展,跨平台移植会很麻烦的
[/Quote]

atoi atif atil 這些標轉函數庫裡面就有了
Papyna 2009-07-11
  • 打赏
  • 举报
回复
用sscanf吧,atoi和itoa这些不是标准拓展,跨平台移植会很麻烦的
xaz0202 2009-07-11
  • 打赏
  • 举报
回复
强制转换: (double)A (char)A
自动转换: char A ;printf("%f",A);
laiwing 2009-07-10
  • 打赏
  • 举报
回复
字串轉數字
int n = atoi("123"); //轉int
double n = atof("123.4"); //轉成浮點數
long n = atol("123"); //轉成long

還有另一種不用<stdlib.h>的方法
int num ;
char ar[5] = "1234";
sscanf(ar,"%d",&num);
用sccanf()函數來完成
laiwing 2009-07-10
  • 打赏
  • 举报
回复
沒有Char 只有 char
轉型的話
char ch = 'A';
double num = (double)ch;這樣強行轉換是可以的

反過來當然也行
double num = 70;
char ch = (char)num;
這樣就行了

不過問題是不能讓num數值超過char能紀錄的範圍
否則的話會出錯

要是 char *ar = "12.34"轉換成數字的話
double num = atof(ar) 就行了

要是讓數子轉化成字串
比如說
double num = 12.34;
char ar[20];
for (int i = 0;i<20;i++)
ar[i] = '\0';

sprintf(ar,"%f",num);
就行了
billow_zhang 2009-07-10
  • 打赏
  • 举报
回复

在C语言中,char的数据类型可以看作是8位的整型数类型;

例如: char c = 'a';

将c当作整型数,实际上它的值就是'a'的ASCII编码, 十进制为 97.

如果要把c转换成double类型,实际上就是将整型数97转换成double类型.
例如:
double d = (char)c;

这个时候,d的值为 97.00000.

实际应用中, 还有一种转换就是将字符串转换成double的数据.
例如:

char *s = "1234.56";

这需要用atof函数进行转换:

double d = atof(s);

benqxiaochen 2009-07-10
  • 打赏
  • 举报
回复
c++中最好使用
static_cast<类型名>(变量)


#include <iostream>

using namespace std;

int main(){

char ch='b';
double num= static_cast<double>(ch);
cout<<num<<endl;
}
benqxiaochen 2009-07-10
  • 打赏
  • 举报
回复
强制类型转换,只需要
按照
(类型名)变量名
这属于c的编程风格
diablox0147 2009-07-09
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{

///
double a= 1.2;
char b = 'b';
a=(int)b;
cout<<a;

///
a=1.2;
b=(char)a;
cout<<b;
return 0;

}
ljt3969636 2009-07-09
  • 打赏
  • 举报
回复
有偿提问也是种美德~

33,317

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧