c语言中,如何取出double类型数的每一位到一个数组?

作者&投稿:邸红 (若有异议请与网页底部的电邮联系)
语言中,如何取出double类型数的每一位到一个数组?~

union
{
double db;
char ch[8];
}db;
db.db 就是double型 db.ch[0~7] 是 它的每一个字节内容,
stringstream ss;
ss<<123456789876;
ss.str().c_str ();这个返回 "123456789876"

思路是:
先将Double型的数字整数部分变为整型数字一一取到数组中去(用循环整除可以做到,比如double i=123.456,就可以先把整数部分用j=(int)i强制类型转换取出放入整型变量j中,再依次取到数组a中
(a[k++]=i%10;i/=10;)
这两句语句就可以做到(不过数字是倒序的,最后输出时要注意)。
再看小数部分,同理,但不用除法,而用乘法,先去除整数部分
(j=j-(int)j;)
再将小数部分不断的乘10取整,取一位去除一位,存入另一数组:
l=(int)(j*10);
b[k++]=l;
j=j*10-l;...直到j*10==0为止
这样就可以把j中的数按位取到了两个数组中,接下去只要将两数组合并到C数组中去,或者依次输出整数部分和小数部分,中间别忘加小数点,输出成字符在C语言里可以这样:
printf("%c",a[i]+'0');
printf(".");
printf("%c",b[i]+'0');

以上就是我的算法,请高手看了不要笑话,希望能给楼主带来启发。

1、直接用数转换到字符串的方法即可。sprintf(s,"%lf",a);s是字符数组,a是double。这样就把a写到s中了。

2、例程:

#include<stdio.h>

#include<iostream>

using namespace std;

int main()

{

char s[12];

double a=123456789876;

sprintf(s,"%lf",a);

printf("%s",s);

return 0;

}

1、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:

2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:

3、在“安全设置-Internet 区域”界面找到“Java 小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击确定,如下图所示:




在c语言中如何从键盘上获取D将其转换为d?
int main(){ putchar(tolower(getchar()));return 0;}

如何在DEVC++软件中输出% d?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

C语言中如何输出字节数
a的ASCII码是97,加3是ASCII码表中100对应的字符就是d。例如:putchar(99);打印的结果是c,代入一个数字打印出的是一个字符。就如同代入的是学号,打印出来的是姓名一样。b)putc函数:将指定的字符输出到指定标准输出流(屏幕或一个文件)中。格式:int putc( int c, FILE *stream );c)等价关...

怎么用C语言获取某一位的值
printf("%d的第%d位是%d\\n",x,d,n);

C语言中如何将一个数字的各个位上的数分别提取?
1、方法一:我的做法是先将整型转为字符串,再将转后的字符串取需要的字符转为整型,过程说起来复杂,但是写起来只要两行代码就行了~include <stdlib.h> include <stdio.h> int main(void){ int number = 12345;char string[25];itoa(number, string, 10);printf(...

易语言 如何取出想要的文本。 【例如以下文本】 abc666fff88 abc764ff...
调试输出 (正则.取子匹配文本 (1, 1, 0) + 正则.取子匹配文本 (1, 2)) '这里可以取第一个的666和88 如果是全部取出,请用 .版本 2 .支持库 spec .局部变量 正则, 正则表达式类 .局部变量 n, 整数型 正则.创建 (“abc(\\d+)fff(\\d+)”, #常量2, 假, 真, , ).计次循环首...

C语言中字符转换为数字时这个d有什么作用
d是用来保存结果并返回给主调函数的。初始为0, 每处理一位,就将该位加到d的尾部,并同时移动处理的字符指针s。比如 s="123"那么第一次循环 d=1 s="23"第二次 d=12 s="3"第三次 d=123 s=""退出循环。

c语言中% d是什么格式输出啊?
d是整型输出格式。02的意思是如果输出的整型数不足两位,左侧用0补齐。1、%d就是普通的输出了 2、% 2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。如下:3、% 02d,和% 2d差不多,只不过左边补0 4、%.2d从执行效果来看,和% 02d一样 ...

C语言中字母D可以作为赋值吗?
好久没有用C了。。但我记得D能作为赋值的。可以用为一个变量来赋值,如果你定义为了。char *d 哪就不行了。 凡是英文状态下的字母和符号都是单个字符(包括了字母,数字,符号等)

C语言 如何取出以0A0D作为标识的一段字符串
char *str1, char *str2),功能是找出str2字符串在str1字符串中第一次出现的位置。 可以这样写:char *p=strstr(a,b);if(NULL != p){ \/\/a中不存在b,添加相应代码}else{ \/\/a中存在b,添加相应代码}返回值p为a中第一次出现b的位置 这个函数要包含头文件string.h ...

拜城县17272501819: c语言中,如何取出double类型数的每一位到一个数组? -
市玛妇舒: 1、直接用数转换到字符串的方法即可.sprintf(s,"%lf",a);s是字符数组,a是double.这样就把a写到s中了.2、例程:#include<stdio.h>#include<iostream> using namespace std; int main() { char s[12]; double a=123456789876; sprintf(s,"%lf...

拜城县17272501819: C语言输出double型数值 -
市玛妇舒: printf("%f",a); 只要前面定义是double形,输出就是double形

拜城县17272501819: C语言中double型如何取整 -
市玛妇舒: 类型转换,或使用数学库中的floor等

拜城县17272501819: c语言中 想输出double类型的 是%lf吗 不是的话应该是什么 -
市玛妇舒: 输出时都行. 但格式用在输入语句里,不能与float 的 %f混淆, double 必须用 %lf

拜城县17272501819: c语言中怎么输出 long double类型 -
市玛妇舒: 输出int , 用%d输出float, 用%f输出double,用 %lf输出long int ,用%ld

拜城县17272501819: c语言中如何将字符串转换成float和double类型 -
市玛妇舒: #include <stdio.h>#include <stdlib.h> int main () { char szOrbits[] ="365.24"; char* pEnd; float f1; f1 = strtof (szOrbits, &pEnd); printf("%f\n",f1); return 0; }

拜城县17272501819: a=1/2+1/3+1/4在c语言中怎么样把1/2+1/3+1/4强制转换成double型 -
市玛妇舒: #include <stdio.h> int main() { int i,n; double sum = 1.0; scanf("%d",&n); for(i = 2; i <= n; ++i)sum += 1.0 / i; // 用double类型的1.0除以int类型的i,结果是double类型 printf("%lf\n",sum); return 0; }

拜城县17272501819: 在c语言中如何自定义一个函数,将字符串转化为double型,并作为函数的返回值.
市玛妇舒: 字符串char和整形int的区别就是字符(char)'5'-'0'=整形数字(int)5,然后再强制转换一下将(int)转换成(double)就可以了.算了,我写出来吧.double chartodob(cahr * a) { double i=a-'0'; return i; }

拜城县17272501819: c 语言定义s 为double 类型 -
市玛妇舒: double是C语言的一个关键字,代表双精度浮点型.2113 占8 个字节(64位)内5261存空间.其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是410215位,16位只是部分数值有保证.1653 可以用格回式化输入输出语句scanf和printf进行double类型的输入输出,格答式化字符为%lf.定义 double a; 可以用 scanf("%lf", &a); 进行输入.用 prinf("%lf",a); 进行输出.

拜城县17272501819: c语言中float型数据如何转换成double型? -
市玛妇舒: 楼上的几位说得不是很对,当你在声明一个常量的时候例如1.33只要你没有在后面加个f也就是1.33f 那么系统默认的存储方式就是double 如果你要直接把常量赋值给double b=1.33 其实没有结果任何转换 要是声明为1.33f也可以直接用double b=1.33 f double的精度要高于float所以不用强制转换

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网