Simulinkでの single型の扱いについて

30 views (last 30 days)
katsunori shigematsu
katsunori shigematsu on 23 Nov 2021
Commented: Atsushi Ueno on 16 Feb 2022
Simulinkで、定数 0.01の出力型をSingleとし、Gainブロックで1000倍すると、出力が10 となります。
Single型での0.01の実際の値は、0.009999... で、1000倍した時に誤差がなくなってしまうのはなぜでしょうか

Answers (1)

Atsushi Ueno
Atsushi Ueno on 23 Nov 2021
MATLABに限らず、コンピュータで表現する数値についての話になります。
単精度(single)の浮動小数点数は、符号1bit、仮数部8bit、指数部23bitの計32bitで表現されます。詳細はリンク先に譲りますが、小数点数を整数と小数に分けて考えます。整数部に10進数表現と2進数表現の誤差はありませんが、小数部には10進数表現と2進数表現の誤差があります。
上記リンク先は、入力した数値について解説してくれるのでとても分かり易いです。「10進数、32bit(single)、0.01」を入力して変換し、その後の解説を読めば理解できます。
  4 Comments

Sign in to comment.

Tags

Products


Release

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!