所以我创建了一个试图将十进制数与科学记数法进行比较的函数。我试图将它们四舍五入并将它们保存到新的变量中。
我做的是这个...
>> digits(3);
>> Y = vpa(0.000036856864)
Y =
3.69e-5
>> Z = vpa(0.000036857009)
Z =
3.69e-5
>> eq(Y,Z)
ans =
0
从技术上讲,新的舍入小数被保存到Y和Z,所以当我比较两个变量时,它给出0,但它应该是1.我如何解决这个问题以确保答案等于1?< / p>
感谢任何帮助!
答案 0 :(得分:1)
vpa
返回的值不是实际数字 - 它们是仍然包含数字原始值的符号对象(在舍入之前)。要比较两者,你应该将它们转换回双倍:
Y = double(vpa(0.000036856864))
Z = double(vpa(0.000036857009))
eq(Y,Z)
应返回1