Как преобразовать строку в число с плавающей точкой? - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь преобразовать строковое значение "0.00008241" в число с плавающей запятой, как оно есть

, что я могу попробовать

 String price="0.00008241";
 Float f1=Float.parseFloat(price);
 Float f2=Float.valueOf(price);
 Double f3 =Double.parseDouble(price);
 Double f4 =Double.valueOf(price);

, но все это возвращает 8.241E-5

затем я пробую это с BigDecimal

BigDecimal tt= BigDecimal.valueOf(Float.parseFloat(price));

, он возвращает 0,00008240999886766076

, поэтому любая помощь, чтобы преобразовать это значение цены как есть?

все еще не может преобразовать это все еще строка?

String price_="0.00008241";
        BigDecimal tt= BigDecimal.valueOf(Float.parseFloat(price_));
        DecimalFormat df = new DecimalFormat("#.##########");
        float price = Float.parseFloat("0.00008241");
        String sPrice= df.format(price);

Значение BigDecimal можно сравнить с двойным значением?

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

Вы ищете как это.Я не уверен, что это так, но вот

BigDecimal bd = new BigDecimal("0.00008241");
System.out.println(bd.toString());
BigDecimal result = bd.add(new BigDecimal("0.005"));
System.out.println(result.toString());
0 голосов
/ 26 мая 2018
 Double f4 =Double.valueOf(price);
 DecimalFormat df = new DecimalFormat("#.#########");
 String after_convert=df.format(f4);
 System.out.println(after_convert);
0 голосов
/ 26 мая 2018

Большой десятичный знак идеально подходит для этого разговора:

           String price="0.00008241";
           BigDecimal decimal=new BigDecimal(price);
           System.out.println(decimal); //0.00008241
...