1

摂氏から華氏に温度を変換する必要があるセクションがあるアプリがありますが、何らかの理由で、いくつかの電話モデル (htc の欲望とソニー エリクソン X10 など) でのみ、この部分でクラッシュしますが、わかりませんどうして。誰でも助けることができますか?

double cel = x/10;
  finalTFF = 9.0f/5.0f * cel + 32.0;
   DecimalFormat twoDForm = new DecimalFormat("##.0");
  double NfinalTFF = Double.valueOf(twoDForm.format(finalTFF));
  return twoDForm.format(NfinalTFF);
4

2 に答える 2

0

呼び出し時に NumberFormatException が発生している可能性があります

double NfinalTFF = Double.valueOf(twoDForm.format(finalTFF));

電話機の言語設定によっては、小数点記号が「.」になります。また "、"。valueOf を呼び出すときは、"." のみを呼び出します。受け入れられます。Keenora は、コードを単純化できることは正しいですが、コードのクラッシュを避けるために、次のように replace ステートメントを追加できます。

double NfinalTFF = Double.valueOf(twoDForm.format(finalTFF).replace(",", "."));
于 2010-08-02T09:28:53.960 に答える
0

なぜそんなに難しいのですか?ご覧のとおり、double を文字列に変換したいので、次のようにします。

public static String celsiusToFahrenheit(double celsius) throws Exception {
 double result = ((celsius * 9) / 5) + 32;
 return String.format("%.2f", result);
}

それはうまくいくはずです:)

于 2010-08-02T07:36:20.677 に答える