保存和比较 MATLAB 的舍入数字
Posted
技术标签:
【中文标题】保存和比较 MATLAB 的舍入数字【英文标题】:Saving and comparing rounded numbers for MATLAB 【发布时间】:2014-09-23 22:33:58 【问题描述】:所以我正在创建一个函数,试图将十进制数与科学记数法进行比较。我正在尝试将它们四舍五入并将它们保存到新变量中。
我做的是这个……
>> 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?
感谢任何帮助!
【问题讨论】:
【参考方案1】:vpa
返回的值不是实际数字 - 它们是符号对象,仍包含数字的原始值(舍入前)。要比较两者,您应该将它们转换回双精度:
Y = double(vpa(0.000036856864))
Z = double(vpa(0.000036857009))
eq(Y,Z)
应该返回 1
【讨论】:
以上是关于保存和比较 MATLAB 的舍入数字的主要内容,如果未能解决你的问题,请参考以下文章