Simulinkでの single型の扱いについて
30 views (last 30 days)
Show older comments
Simulinkで、定数 0.01の出力型をSingleとし、Gainブロックで1000倍すると、出力が10 となります。
Single型での0.01の実際の値は、0.009999... で、1000倍した時に誤差がなくなってしまうのはなぜでしょうか
0 Comments
Answers (1)
Atsushi Ueno
on 23 Nov 2021
MATLABに限らず、コンピュータで表現する数値についての話になります。
単精度(single)の浮動小数点数は、符号1bit、仮数部8bit、指数部23bitの計32bitで表現されます。詳細はリンク先に譲りますが、小数点数を整数と小数に分けて考えます。整数部に10進数表現と2進数表現の誤差はありませんが、小数部には10進数表現と2進数表現の誤差があります。
上記リンク先は、入力した数値について解説してくれるのでとても分かり易いです。「10進数、32bit(single)、0.01」を入力して変換し、その後の解説を読めば理解できます。
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!