SIMPLE MATH ERROR CALCULATION
6 ビュー (過去 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 件のコメント
参考
カテゴリ
Find more on Number Theory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!