SIMPLE MATH ERROR CALCULATION
3 ビュー (過去 30 日間)
古いコメントを表示
I just need to do a simple math operation (9.2 x 9.2), wich result is 84.64. But somehow MATLAB give me a 84.699999999990 result I don't know why, I need the exact result of the operations because this result makes my servomotor go +90°, and wuth 84.64 it goes -90°.
q3b4=9.2^2;
q3b5=9.2*9.2;
Both q3b4 and q3b5 have the same result.
0 件のコメント
回答 (2 件)
Sulaymon Eshkabilov
2021 年 6 月 13 日
MATLAB's accuracy is not absolute and thus, such offsets will be present. You can select how many decimal digits you need using vpa() if you have Symbolic MATH toolbox.
https://www.mathworks.com/help/symbolic/digits.html#:~:text=By%20default%2C%20MATLAB%C2%AE%20uses,32%20digits%20by%20using%20digits%20.
0 件のコメント
madhan ravi
2021 年 6 月 13 日
編集済み: madhan ravi
2021 年 6 月 13 日
Click on the tag floating-point
round((9.2^2 * 1e2) / 1e2, 3) % since you're using a hardware , not sure using a sym class would be acceptable for it
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!