在for里面的if中,如果将t=0.05i+0.02j+0.01k
放入if中,如图所示,但是直接写成这样if确不能通过if(x==0.05i+0.02j+0.01k),
虽然你%f输出x的值是0.08,但其实x是0.07999999821186......,%f默认保留6位小数得到的0.08,不信你用%.20f输出x就看到了。
不是所有小数都能正好转化成一个相等的二进制数,小数转化成二进制的时候可能是无限的,位数特别长,所以
建议:
1.将x定义成double类型
2.判断x与0.08是否相等时用 x-0.08 < 0.0000001这样的关系式