I have a problem on double with two non 0 decimals. For example, if my double is 15.00 it is ok, but if my double is 15.55 my app crashes. This is happening on my real phone (Galaxy s8+ - API 26), on all virtual devices from the android studio it works fine with all kinds of doubles (15.00 and 15.55). Can someone help with this?
My code:
DecimalFormat formatData = new DecimalFormat("#.##");
Menu_ID.add(Long.parseLong(menu.getString("Menu_ID")));
Menu_name.add(menu.getString("Menu_name"));
Menu_price50.add(Double.valueOf(formatData.format(menu.getDouble("Price_50"))));
if(Category_ID == 1) {
Menu_price100.add(Double.valueOf(formatData.format(menu.getDouble("Price_100"))));
}
Menu_image.add(menu.getString("Menu_image"));
Crash log
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.ayurmed.ayucom, PID: 23974
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NumberFormatException: For input string: "14,5"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:539)
at java.lang.Double.valueOf(Double.java:503)
at com.ayurmed.ayucom.activities.ActivityMenuList.parseJSONData(ActivityMenuList.java:393)
at com.ayurmed.ayucom.activities.ActivityMenuList$getDataTask.doInBackground(ActivityMenuList.java:338)
at com.ayurmed.ayucom.activities.ActivityMenuList$getDataTask.doInBackground(ActivityMenuList.java:324)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)