代码之家  ›  专栏  ›  技术社区  ›  Enes

如何将字符串转换为浮点?

  •  0
  • Enes  · 技术社区  · 7 年前

    我正在尝试将字符串值“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值可以和double值比较吗?

    3 回复  |  直到 7 年前
        1
  •  3
  •   anilkay    7 年前

    大小数非常适合这段对话:

               String price="0.00008241";
               BigDecimal decimal=new BigDecimal(price);
               System.out.println(decimal); //0.00008241
    
        2
  •  3
  •   BiRjU    7 年前
     Double f4 =Double.valueOf(price);
     DecimalFormat df = new DecimalFormat("#.#########");
     String after_convert=df.format(f4);
     System.out.println(after_convert);
    
        3
  •  1
  •   Tunc    7 年前

    BigDecimal bd = new BigDecimal("0.00008241");
    System.out.println(bd.toString());
    BigDecimal result = bd.add(new BigDecimal("0.005"));
    System.out.println(result.toString());