2011-12-08 23 views
0

私は200kwh /年のような変数を持っているかのようなことを知りたがっています。変数にkwh/yearを入れる最も良い方法は何ですか

+0

なぜ 'int'または' double'型が不適切なのですか? – korifey

+0

なぜ 'int'または' double'が動作しないのか説明してください。値を格納することができ、単位(つまり 'kwh/year')が暗示されます。 – dasblinkenlight

+2

あなたは最高のデータ型が何であるか尋ねていますか? –

答えて

1

さまざまな方法で保存できます。 intfloatdoubleを使用するのが最も簡単な場合、または詳細を感じている場合はBigDecimalです。

は有意義で理解しやすい、それを維持するために、変数名を使用してください:

例:

double kilowattsPerYear = 200.00d; 
int kilowattsPerYear = 200; 
float kilowattsPerYear = 200.00f; 
BigDecimal kilowattsPeryear = new BigDecimal("200.00"); //Accepts Several Types 
+0

+1正確な精度が必要または非常に大きい(または小さい)場合は、[BigDecimal'](http://docs.oracle.com/javase/6/docs/api/java/math/BigDecimal.html)番号が必要です。 – maerics

-2

はキロワット時=キロワットアワーではありません。 SI Kwhの年間使用量はキロワットですか?

したがって整数で十分です。

+0

はい。しかし、200.5 kwh /年のようにはなりませんか? –

+1

単位をキャンセルすることは整数値で何をする必要がありますか? –

+0

私はそれが十分であるかもしれないと言った - 家庭が1年で使うキロワットの数について話しているならば。データ型に関しては、数値を使って何をしようとしているのかによって異なります。 –

1

アプリケーションによって異なります。

宿題の場合のように簡単な答えは、floatまたはdoubleです。 A floatは、宿題のための十分な解決策を提供し、最小限のメモリを使用します。非常に特定の番号が必要な場合、科学的な用途のために、doubleを使用することができます。何百万ものデータポイントを持ち、メモリを節約し、余分な解像度を必要としない限り、変数のサイズはおそらく変わりません。

intを使用している場合は、整数データのみに制限されます。ただし、請求申請の場合は、会社は0.001 kwh単位で請求することができます。この場合、int値番号0.001 kwhとして格納すると、浮動小数点演算中に発生する可能性のある丸め誤差がなくなります。このアプローチは、お金を扱うときによく使用されます。

1

私は、これはより柔軟になると思い

public class CustUnit{ 

private BigDecimal value; 
private String unit; 

     public CustUnit(String/double/int/long value,String unit){ 
      this.value = new BigDecimal(value); 
      this.unit = unit; 
} 

public String getValue(){ 
return this.value.toString + this.unit;; 
} 

} 

などのカスタマイズデータ・タイプのものを作成します。あなたはユニットと値の異なるタイプのためにそれを使用することができます。

+0

+1ユニットでの計算も可能で、正しい変数/演算を計算に使用していることを確認する方法もあります(*の代わりに10kWh/year + 22cent/kWhなど)。 – Stefan

関連する問題