0

4 つの数値ピッカーがあり、4 つの数値を文字列として連結します。これを long に変換する方法は次のとおりです。

String decimals=units2.concat(units3).concat(units4);
String units = units1;
String finalGrade = units1+decimals;
long Grade = Long.valueOf(finalGrade).longValue();
NumberFormat f = new DecimalFormat("000");
txtGrades.setText(f.format(Grade));

しかし、私は代わりに 1.234 a 1234 を取得します

4

1 に答える 1

0

次のようなことをしてください:

String resultAsString = String.valueOf(units1) 
    + "." 
    + String.valueOf(units2) + 
    + String.valueOf(units3) + 
    + String.valueOf(units4);
Double result = Double.valueOf(resultAsString);

または、コード内の次の行を更新できます。

String finalGrade = units1+decimals;

これに:

String finalGrade = units1 + "." + decimals;

これは StringBuilder などでさらに最適化できますが、一般的なアイデアを提示したかったのです :-)

また、経験から、文字列を使用してこのようなことを行うと、数値計算を使用すると通常、前頭の 0 が破棄されるため、前頭の 0 が正しく取得されます (これは数値パスワードなどにとって重要です)。

于 2016-05-19T08:24:08.857 に答える