0

数値を含む文字列があり、その数値に1.28を掛けたい

文字列の割り当て方法は次のとおりです

String PRICE = dataRecord.get( "PRICE" );
4

7 に答える 7

7

データの数値表現を取得し、それに対して乗算を実行する必要があります。例は「価格」なので、お金がかかると思いますので、小数型をお勧めします。

String price = "9.99";
BigDecimal priceDecimal = new BigDecimal( price );
BigDecimal total = priceDecimal.multiply( new BigDecimal( "1.28" ) );
System.out.println( total );
于 2011-01-02T19:53:24.963 に答える
0

より良い方法は、doubleフィールド型の適切なオブジェクトを使用することです。

double price = dataRecord.price * 1.28;

同じ答えを与える@Robの例に似ています。どちらが簡単かはあなたが決めます。;)

double price = 9.99;
double total = price * 1.28;
System.out.printf("%.4f%n", total);

お金のために、私は適切な丸めでダブルを使用することをお勧めします。

于 2011-01-02T19:54:02.497 に答える
0

あなたが本当に欲しいのは:

double price = dataRecord.getDouble( "PRICE" );

dataRecordがResultSetオブジェクトであると想定します。いずれにせよ、BigDecimalsを使用する方がはるかに優れており、PRICEが実際にStringオブジェクトに格納されている場合は、浮動小数点精度の問題を知っているため、これを行ったと思います。

于 2011-01-02T19:56:57.617 に答える
0

これがあなたが探しているものであることを願っています

String priceAsString = dataRecord.get( "PRICE" );

double priceAsInt = Double.valueOf(priceAsString).doubleValue();
double multipliedPrice = priceAsInt * 1.28;

値を乗算した後で文字列に変換する必要がない場合は、最後の行を削除するだけです。

于 2011-01-02T19:58:15.313 に答える
0

浮動小数点演算。BigDecimalを使用すると、結果にスケールを設定して丸めを呼び出す必要があります。スケールが必要なサイズよりも大きくなる可能性が高いためです。

private static final BigDecimal MULT = new BigDecimal("1.28");

BigDecimal price = new BigDecimal(dataRecord.get("PRICE"));
BigDecimal result = price.multiply(MULT).setScale(2, RoundingMode.HALF_EVEN);
于 2011-01-02T20:24:14.303 に答える
0

簡単な方法: 次の Double.ParseInt("Stringname") を実行すると、double 値が返されます。

于 2011-01-02T21:14:36.043 に答える
0

乗算を行うために、文字列を double に変換します。Double.parseDouble() は、使用できるメソッドです。文字列の形式が正しくなく、エラーがスローされた場合に備えて、これを try ブロックでラップすることにしました (価格が何らかの理由で数値でない場合 - 例: 5.67b または 8..34)。

String price = dataRecord.get( "PRICE" );
try {
    double p = Double.parseDouble(price);
    double result = p*1.28;
    System.out.println(result);
} catch(NumberFormatException e) { // ERROR HANDLING
    System.out.println("Error parsing string: Price is not a number.");
}

参考までに、parseDouble() のドキュメントを次に示します。

public static double parseDouble(String s) は NumberFormatException をスローします

クラス Double の valueOf メソッドによって実行されるように、指定された String によって表される値に初期化された新しい double を返します。

于 2011-01-02T20:11:37.803 に答える