0

どういうわけか、この変換は私の頭を本当に混乱させます。紙の上でも頭の中でも変換できますが、宿題用に Java で書き込もうとすると、本当に混乱してしまいます。割り当ては、ユーザーがキログラム単位で数値を入力し、ある行に何ポンド、別の行に何オンスかを示すプログラムを作成することです。変換は一般的に私を混乱させますが、これが正しいかどうかはわかりません. どこでも型キャストを使用する必要がありますか?

import acm.program.*;

public class KilogramsToPoundsAndOunces extends ConsoleProgram {

public void run(){
println("This programs converts kilograms into pounds and ounces.");
double kilo = readDouble("Enter the kilogram value: "); 
double totalOunces = (kilo * POUNDS_PER_KILOGRAM) * OUNCES_PER_POUND; 
int totalPounds = totalOunces % OUNCES_PER_POUND; 
double leftOverOunces = totalOunces - (totalPounds * OUNCES_PER_POUND);  
println(totalPounds + "lbs" + ".");
println(leftOverOunces + "ozs" + ".")

}
private static void POUNDS_PER_KILOGRAM = 2.2; 
private static void OUNCES_PER_POUND = 16; 
}   
4

3 に答える 3

6

定数の数値データ型を定義する必要があります。

private static double POUNDS_PER_KILOGRAM = 2.2; 
private static int OUNCES_PER_POUND = 16; 

また、コンパイルするtotalPoundsには にキャストする必要があります。int

int totalPounds = (int) (totalOunces % OUNCES_PER_POUND);

これは次のようにする必要がありますが:

int totalPounds = (int) (totalOunces / OUNCES_PER_POUND);

(@Kleanthisの回答を参照)

于 2012-10-18T22:45:21.473 に答える
1

プログラムがうまくいかないのは次の場所だと思います。

int totalPounds = totalOunces % OUNCES_PER_POUND;
double leftOverOunces = totalOunces - (totalPounds * OUNCES_PER_POUND);

モジュロ演算子は合計ポンドを返しませんが、できるだけ多くの完全なポントを取得すると、残りのオンスが返されます。例えば

int leftoverOunces = totalOunces % OUNCES_PER_POUND;

int totalPounds = (int)(totalOunses/OUNCES_PER_POUND);

それはあなたに正しい結果をもたらすはずです。

于 2012-10-18T22:55:33.490 に答える
1

まず第一に、グローバルPOUNDS_PER_KILOGRAMOUNCES_PER_POUNDは変数であるため、戻り値の型がありません (それらは void を「返す」必要があります)。

好む:

private final double POUNDS_PER_KILOGRAM = 2.2;
于 2012-10-18T22:46:00.547 に答える