关于小数取整问题#include main(double x,int d){double sum2,sum3,temp;
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/14 04:35:38
关于小数取整问题
#include
main(double x,int d)
{double sum2,sum3,temp;
int s1;
double s2,n1=1.0;
double n2=2.0;int sum1;
x=111.1;
d=1;
temp=x;
sum1=int (x);
sum2=temp-(double)sum1;
sum3=0.0;cout
#include
main(double x,int d)
{double sum2,sum3,temp;
int s1;
double s2,n1=1.0;
double n2=2.0;int sum1;
x=111.1;
d=1;
temp=x;
sum1=int (x);
sum2=temp-(double)sum1;
sum3=0.0;cout
111
sum2 1 0.1
sum21
s2 0
看清楚了,是0.99999999999994316
不是1,精度问题,计算机认为0.99999999999994316与1是没有差别的.
所以显示的时候显示了1
之所以会这样是因为计算机对数学计算中长的数是会截断的.
如数学上是
1/3 = 0.333333333333.
3*0.333333333333...= 0.99999999999.= 1
而计算机里面计算是
1/3 =0.333333333333
3*0.333333333333 = 0.99999999999 != 1 //截断了
但显示程序设计上会认为0.99999999999是等于1的,因为这样友善些.
那怎么才能解决这个问题呢,这个小程序是一个二进制的数转化为十进制的数
while(sum2 > 0.00000002){ // 之前这里写错了,现在应该行了
sum2 += 0.00000001; //这里加一行就可以解决了.
sum2=sum2*10.0;
cout
sum2 1 0.1
sum21
s2 0
看清楚了,是0.99999999999994316
不是1,精度问题,计算机认为0.99999999999994316与1是没有差别的.
所以显示的时候显示了1
之所以会这样是因为计算机对数学计算中长的数是会截断的.
如数学上是
1/3 = 0.333333333333.
3*0.333333333333...= 0.99999999999.= 1
而计算机里面计算是
1/3 =0.333333333333
3*0.333333333333 = 0.99999999999 != 1 //截断了
但显示程序设计上会认为0.99999999999是等于1的,因为这样友善些.
那怎么才能解决这个问题呢,这个小程序是一个二进制的数转化为十进制的数
while(sum2 > 0.00000002){ // 之前这里写错了,现在应该行了
sum2 += 0.00000001; //这里加一行就可以解决了.
sum2=sum2*10.0;
cout
关于小数取整问题#include main(double x,int d){double sum2,sum3,temp;
递归函数计算x^n#include double fun(int n,double x);int main(void){
#include main( ) { double d=3.2; int x,y x=1.2; y=(x+3.8)/5.
有关C语言公式问题#include #include void main (){int r,h;double a,b,c
求pi问题c语言#include#includevoid main(){ int a, b ; double pi=0;
#include main() {double x=1.0; int n; for(n=0;n
#include main() {int a=325;double x=3.1415926; printf("a=%+0
#include double s(double x); void main() { double a,y; scanf
sqrt()函数问题#include#includeint main(){double d = 4.4;printf("
double fun(int i,double x,double
#include #iuclude main() { double x,s; printf("iuput number:
程序有个部分读不懂,#include void main(){int x,y,t;double a;float b;in