2012-04-26 12 views
0

データベースからの値が金額データ型の場合、変数の値を小数点以下の2桁に固定する方法。 また、データベースでは、moneyデータ型に対して精度と位取りが定義されていません。お金のデータ型の使い方

Ex. value from database is: 3.7700(of money datatype) 

output needed: 3.77 

出力とは、値を変数に保存して印刷するという意味です。また、私はそれを2倍に変換し、小数点以下2桁まで解析しました。しかし、私の疑問は、型キャストなしで金銭データ型を直接操作する他のメソッドがあるかどうかです。

+0

出力がどういう意味ですか - 値を印刷するという意味ですか? – BeRecursive

+3

何を試しましたか? http://stackoverflow.com/questions/2379221/java-currency-number-formatを見ましたか? – radimpe

+0

Java標準ライブラリは 'Money'クラスを定義していないので、カスタムMoneyクラスを使用しているのか、' double'値を扱うことに興味があるのか​​を明確にしてください。 – posdef

答えて

0

データベースには独自の精度がない場合は、独自の指定子を使用できます。 System.out.println("%.2f",<money variable>);を使用してください。どこ%.2f.f後2ヶ所に限界を制限するために使用されるには、[このサイト]から、データ型

を浮動ための指定である[1]

[1]:http://www.drdobbs.com/jvm/184405653 iは次の段落を引用します:

`The toDouble() method converts a monetary value to a double floating-point value. 
However, you should avoid using the converted value for computational purposes, owing 
to the problems associated with the use of floating-point data types with 
monetary data. 

You can also convert a monetary value to a long integer data type (having an implied 
scaling factor of 2). In this case, an automatic round-off to the nearest whole cent is 
performed.` 

だからあなたのお金変数が十分な範囲で任意の型に変換し、変換された値を使用し、2またはあなたが好きな場所の任意の数に小数点をキャストすることができます。

0

java.util.formatterを使用してください。 "%10.2f"のような書式設定文字列を使用することができます

+0

float/doubleデータ型の使用はお勧めできません。 – mrab

関連する問題