0

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) 

0 Answers0