public static float fahrenheitEnCelsius(int f) {
float cel = 5 / 9.0F * (f - 32);
NumberFormat formatter = NumberFormat.getInstance(Locale.US);
formatter.setMaximumFractionDigits(1);
Float formatedFloat = new Float(formatter.format(cel));
return formatedFloat;
}
I have function that takes an integer input of a value in Fahrenheit and returns the value in celsius with only one decimal after the comma. I am getting this error for an input value 2006 :
Exception in thread "main" java.lang.NumberFormatException: For input string: "1,096.7"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at java.lang.Float.<init>(Float.java:532)
at seance11mai.fahrenheitEnCelsius(seance11mai.java:42)
at seance11mai.main(seance11mai.java:47)
You can better return the string instead of float by changing the method to public static float fahrenheitEnCelsius(int f)
If you really wants to return a float try this :
public static float fahrenheitEnCelsius(int f) {
float cel = 5 / 9.0F * (f - 32);
NumberFormat formatter = NumberFormat.getInstance(Locale.US);
formatter.setMaximumFractionDigits(1);
String temp = formatter.format(cel);
temp = temp.replaceAll("[,;\\s]","");
Float formatedFloat = new Float(temp);
System.out.println(formatedFloat);
return formatedFloat;
}