2010-08-02 3 views
1

J'ai une application qui a une section qui doit convertir la température de Celsius en Fahrenheit, mais pour une raison quelconque sur seulement quelques modèles de téléphone (comme le désir htc et Sony Ericsson X10) il se bloque à cette partie, mais je ne sais pas pourquoi. quelqu'un peut-il aider?Force de conversion de température Android fermer

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); 

Répondre

0

Pourquoi est-ce si difficile? Comme je vois, vous voulez convertir un double en une chaîne, donc:

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

Cela devrait fonctionner :)

+0

Merci :), je reçois l'habitude une chance de tester ceci jusqu'à ce soir, mais Je vais mettre à jour quand je confirme que cela fonctionne. – John

+0

oui, cela a fonctionné, merci – John

+0

Impressionnant :) Je viens d'utiliser cette fonction dans mon HelperClass ainsi. J'aime toutes ces méthodes de conversion ^^ –

0

Vous êtes probablement trouvé NumberFormatException lorsque vous appelez

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

Selon la paramètres de langue sur le séparateur décimal du téléphone est "." ou ",". Lorsque vous appelez valueOf, seulement "." est accepté. Keenora est exact que le code peut être simplyfied, mais pour éviter l'accident dans votre code, vous pouvez ajouter une déclaration remplacer comme ceci: vous

double NfinalTFF = Double.valueOf(twoDForm.format(finalTFF).replace(",", ".")); 
+0

Merci aussi: D. Comme je l'ai dit avec l'autre réponse, je n'aurai pas l'occasion d'essayer jusqu'à ce soir, mais je le mettrai à jour quand j'en aurai l'occasion. btw, merci pour l'info supplémentaire sur pourquoi mon code ne fonctionne pas sur tous les téléphones. – John