Book Art and Science of Java の課題の解決策として、キログラムを対応するポンドとオンスの値に変換するプログラムを作成する必要がありました。私はプログラムを書きましたが、例えば 1kg を変換しようとすると、プログラムが与える結果は次のようになります: 1kg = 2 ポンドと 3.200000000000006 オンス
現在、私の定数は 1 kg あたり 2.2 ポンド、1 ポンドあたり 16 オンスなので、3.2 オンスが正しいです。しかし、それほど多くの 0 があるわけではなく、最後の 6 は私をびっくりさせます。
なぜこれが起こるのか、どうすれば解決できるのか知っている人はいますか? ありがとうございました!
コードは次のとおりです。
/*
* File: KgsLibras.java
* Program that converts kilograms in pounds and ounces.
*/
import acm.program.*;
public class KgsLibras extends ConsoleProgram {
public void run () {
println ("This program will convert kilograms in pounds and ounces");
double kgs = readDouble ("Insert kgs value: ");
double libras = kgs * LIBRAS_POR_KG;
double oncas = (libras - (int)libras) * ONCAS_POR_LIBRA;
println ((int)libras + " libras" + " e " + oncas + " Onças.");
}
private static final double LIBRAS_POR_KG = 2.2;
private static final int ONCAS_POR_LIBRA = 16;
}