Android сила преобразования температуры близко - PullRequest
1 голос
/ 02 августа 2010

У меня есть приложение, в котором есть раздел, в котором требуется преобразовать температуру по Цельсию в градусы Фаренгейта, но по какой-то причине только на нескольких моделях телефонов (например, HTC Desire и Sony Ericsson 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);

Ответы [ 2 ]

0 голосов
/ 02 августа 2010

Возможно, вы получаете NumberFormatException при вызове

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

В зависимости от языковых настроек на телефоне десятичный разделитель имеет значение «.» или же ",". При вызове valueOf только "." принято Кинора прав в том, что код может быть просто записан, но во избежание сбоя в вашем коде вы можете добавить оператор замены следующим образом:

double NfinalTFF = Double.valueOf(twoDForm.format(finalTFF).replace(",", "."));
0 голосов
/ 02 августа 2010

Почему так сложно?Как я вижу, вы хотите преобразовать double в строку, так:

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

Это должно сработать:)

...