把一个长双精度的数强制转换成一个单精度的结果怎么样?
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/04 15:40:54
把一个长双精度的数强制转换成一个单精度的结果怎么样?
#include
float fun(float h)
{long w ;
w=h*100+0.5;
return(float)w/100;
}
main()
{float a;
printf("Enter a: "); scanf( "%f", &a);
printf("The original data is : ");
printf("%f \n\n", a);
printf("The result : %f\n", fun(a));
}
#include
float fun(float h)
{long w ;
w=h*100+0.5;
return(float)w/100;
}
main()
{float a;
printf("Enter a: "); scanf( "%f", &a);
printf("The original data is : ");
printf("%f \n\n", a);
printf("The result : %f\n", fun(a));
}
只要那个数在单精度范围内就没什么改变,超过将会导致数据错误.
再问: 我也是这么想的,可是有道题不是这样,如下:编写一个函数float fun(float h),函数的功能是保留h小数点后两位数,并对第三位进行四舍五入。例如:h值为8.32433,则函数返回8.320000; h值为8.32533,则函数返回8.330000。程序看问题补充。
再答: 程序是正确的,我试了一下;没什么问题啊;
再问: 程序没错啊,我是奇怪w=h*100+0.5;return(float)w/100;这两个语句,例如当h= 8.32433时,w=832.933,再把w转化为float变成832.933000再除以100不是应该等于8.329330吗?
再答: 执行w=h*100+0.5;过后W=832;W是整形数据这里面存在一个自动类型转换问题,看书赋值那地方有说
再问: 我也是这么想的,可是有道题不是这样,如下:编写一个函数float fun(float h),函数的功能是保留h小数点后两位数,并对第三位进行四舍五入。例如:h值为8.32433,则函数返回8.320000; h值为8.32533,则函数返回8.330000。程序看问题补充。
再答: 程序是正确的,我试了一下;没什么问题啊;
再问: 程序没错啊,我是奇怪w=h*100+0.5;return(float)w/100;这两个语句,例如当h= 8.32433时,w=832.933,再把w转化为float变成832.933000再除以100不是应该等于8.329330吗?
再答: 执行w=h*100+0.5;过后W=832;W是整形数据这里面存在一个自动类型转换问题,看书赋值那地方有说
把一个长双精度的数强制转换成一个单精度的结果怎么样?
单精度,双精度的定义是什么?
把3.5转换为单精度数和双精度数,单精度数3.500000,(因为单精度有效位数7位),那么双精度有效位数15——16位
求算法:输入一个单精度小数,在结果中分别输出这个数的整数和小数部分
定义一个类,该类中能实现分别求两个整数、双精度浮点数、单精度浮点数中的较小数的功能 .
单精度浮点数的精度为什么是7位
单精度浮点数与双精度浮点数的区别
请问下IEEE754定义的单精度和双精度浮点数表示的范围?
C#题编写一个进行加减乘除四则运算的程序,要求;输出2个单精度数,然后输入一个运算符号,输出结果
C语言中的单、双精度数的意义
什么是定点数、浮点数;什么是双精度、单精度?
单精度数和双精度数是什么意思