急问:c 把 0.05 付给 double时候 不是 0.050000x 最后还有一个非0数字 x,影响最终结果,怎样解决!我不想要最后x
时间:2008-05-09 09:22:47
来源:论坛整理 作者: 编辑:chinaitzhe
c 把 0.05 付给 double时候 不是 0.050000x 最后还有一个非0数字 x,
这个使得我的画图结果受到影响,怎样解决!我不想要最后x,也会影响我的循环次数。
谢谢!!
网友回复:只是简单的赋值,怎么能多出一个x,不理解...
网友回复:代码贴出来...
还有,double怎么会影响你的循环?难道你的循环变量是用double的???
网友回复:double有精度问题
赋值前的0.05其实也是后面有x的,只是你要求精度2位所以没有x
你用一个2位精度的赋值给另一个数字,那么结果也要用2位精度
double的判定一般这样
//浮点数比较,a <b返回-1 ,a>b返回1 ,a=b返回0
int FloatComp(double a,double b, double dEpsilon/* = 1e-6*/)
{
double d = dEpsilon;
if (d < EPSILON)
{
d = EPSILON;
}
double c = a - b;
if(c > d)
return 1;
if(c < -d)
return -1;
return 0;
}
网友回复:
这是十进制小数到二进制小数变换不可避免的情况。
对于影响画图结果和循环次数,不知道具体情况如何,不好说。
一个变通的办法是,不用浮点数,把数值全部变为整数处理。比如所有参数都 × 20 变为整数进行计算。
网友回复:谢谢楼上热心的几位!
我想要计算的。不是单单比较大小阿。。。
就是t 用于别的变量的求值。
谢谢各位!
网友回复:
根据需要,变换为整数或浮点数。
不清楚算法,没法给出更具体的方案。
关键字:0.05,付给,double,时候,0.050000,
上一篇:ios示例程序中循环的问题
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面