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

为什么这么难?如我所见,您想将双精度转换为字符串,因此:

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 回答
0

调用时您可能会收到 NumberFormatException

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

根据电话的语言设置,小数点分隔符是“.”。或者 ”,”。调用 valueOf 时,只有 "." 被接受。Keenora 认为代码可以简化是正确的,但为了避免代码崩溃,您可以添加如下替换语句:

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