丸め誤差
日本語 | 丸め誤差 |
英語 | round-off error |
ふりがな | まるめごさ |
フリガナ | マルメゴサ |
浮動小数点が表現できない数による誤差。
浮動小数点は「指数部」と「仮数部」を掛けて実数を表現する。仮数部は「指数部を割る分数」のため、分数で表現できない実数を表現することはできず、近似値となる。
この時、数が切り捨てられるため、この誤差を「切り捨てによる誤差」であることから「丸め誤差」と呼ぶ。
広義においては、「切り捨て」による誤差のこと。
たとえば、浮動小数点型を整数型にキャストすることで、小数点以下が切り捨てられたりした場合に「丸め誤差」と言う場合もある。
ただし、ほとんどの場合において「丸め誤差」と言えば浮動小数点のことを指す。
浮動小数点は「指数部」と「仮数部」を掛けて実数を表現する。仮数部は「指数部を割る分数」のため、分数で表現できない実数を表現することはできず、近似値となる。
この時、数が切り捨てられるため、この誤差を「切り捨てによる誤差」であることから「丸め誤差」と呼ぶ。
広義においては、「切り捨て」による誤差のこと。
たとえば、浮動小数点型を整数型にキャストすることで、小数点以下が切り捨てられたりした場合に「丸め誤差」と言う場合もある。
ただし、ほとんどの場合において「丸め誤差」と言えば浮動小数点のことを指す。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 浮動小数点リテラルは、プログラム上では
// 「切りのいい値」ですが、内部的には
// 浮動小数点として扱われるため、
// 誤差が生じます。この誤差が「丸め誤差」です。
System.out.println( 4.1 + 8.2 );
// 12.299999999999999
// 「丸め」とは、一種の「切り捨て」のことなので、
// 切り捨てが発生する場面でも「丸め誤差」と言う
// 場合もあります。あまりないですが。
// たとえば、以下の例ではint型にキャストして
// 小数点以下が切り捨てられています。
System.out.println( (int)( 0.5 + 1.0 ) );
// 1
}
}
public class Sample
{
public static void main( String[] args )
{
// 浮動小数点リテラルは、プログラム上では
// 「切りのいい値」ですが、内部的には
// 浮動小数点として扱われるため、
// 誤差が生じます。この誤差が「丸め誤差」です。
System.out.println( 4.1 + 8.2 );
// 12.299999999999999
// 「丸め」とは、一種の「切り捨て」のことなので、
// 切り捨てが発生する場面でも「丸め誤差」と言う
// 場合もあります。あまりないですが。
// たとえば、以下の例ではint型にキャストして
// 小数点以下が切り捨てられています。
System.out.println( (int)( 0.5 + 1.0 ) );
// 1
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 浮動小数点リテラルは、プログラム上では // 「切りのいい値」ですが、内部的には // 浮動小数点として扱われるため、 // 誤差が生じます。この誤差が「丸め誤差」です。 System.out.println( 4.1 + 8.2 ); // 12.299999999999999 // 「丸め」とは、一種の「切り捨て」のことなので、 // 切り捨てが発生する場面でも「丸め誤差」と言う // 場合もあります。あまりないですが。 // たとえば、以下の例ではint型にキャストして // 小数点以下が切り捨てられています。 System.out.println( (int)( 0.5 + 1.0 ) ); // 1 } }