Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在float中提取3个字符?_Java - Fatal编程技术网

Java 如何在float中提取3个字符?

Java 如何在float中提取3个字符?,java,Java,我的浮点值为0.152545,我只需要0.1f。 这是如何可能的.. 通过使用字符串,我得到了字符串值 String pass = pass.substring(0, Math.min(pass.length(), 3)); pass=pass+"f"; 这给了我像0.1f这样的字符串值,但我只想要像0.1f这样的浮点值。这将是您应该使用的合适位置,而#f将是您案例的模式 一些相关问题- 这将是您应该使用的合适位置,\f将是您案例的模式 一些相关问题- 怎么样 float

我的浮点值为0.152545,我只需要0.1f。
这是如何可能的..
通过使用字符串,我得到了字符串值

 String pass = pass.substring(0, Math.min(pass.length(), 3));
 pass=pass+"f";

这给了我像0.1f这样的字符串值,但我只想要像0.1f这样的浮点值。

这将是您应该使用的合适位置,而
#f
将是您案例的模式

一些相关问题-


这将是您应该使用的合适位置,
\f
将是您案例的模式

一些相关问题-

    • 怎么样

      float new = Math.round( 10.0 * f ) / 10.0;
      
      它并不精确,因为浮点数/双精度数只是1/2^n的有限级数的和,但对您来说可能足够好了

      也许您应该考虑使用一个有效的小数点,并在内部保持完整的精度

      干杯,怎么样

      float new = Math.round( 10.0 * f ) / 10.0;
      
      它并不精确,因为浮点数/双精度数只是1/2^n的有限级数的和,但对您来说可能足够好了

      也许您应该考虑使用一个有效的小数点,并在内部保持完整的精度


      干杯,

      你可以用一个大十进制

      float f = 0.152545f;
      BigDecimal bd = new BigDecimal(f);
      bd = bd.setScale(1, RoundingMode.DOWN);
      f = bd.floatValue();
      
      即使将浮点存储为字符串,也可以正常工作

      String floatAsString = "0.152545";
      BigDecimal bd = new BigDecimal(floatAsString);
      bd = bd.setScale(1, RoundingMode.DOWN);
      float f = bd.floatValue();
      

      你可以用一个大十进制

      float f = 0.152545f;
      BigDecimal bd = new BigDecimal(f);
      bd = bd.setScale(1, RoundingMode.DOWN);
      f = bd.floatValue();
      
      即使将浮点存储为字符串,也可以正常工作

      String floatAsString = "0.152545";
      BigDecimal bd = new BigDecimal(floatAsString);
      bd = bd.setScale(1, RoundingMode.DOWN);
      float f = bd.floatValue();
      
      你可以做:

      DecimalFormat format = new DecimalFormat("0.0");
      format.setRoundingMode(RoundingMode.DOWN);
      format.setMaximumFractionDigits(1);
      System.out.println(format.format(0.152545) + "f");
      
      你可以做:

      DecimalFormat format = new DecimalFormat("0.0");
      format.setRoundingMode(RoundingMode.DOWN);
      format.setMaximumFractionDigits(1);
      System.out.println(format.format(0.152545) + "f");
      

      你为什么不把它转换成一个浮点数并设置你想要的精度呢?只是一个用法说明:十分之一,0.1,没有精确的位表示,而浮点数只是一个近似值(用1/32,1/64,1/128求和,…)。所以1000*0.1不是100.0。你为什么不把它转换成一个浮点数,并设置你想要的精度呢?只是一个用法说明:十分之一,0.1,没有精确的位表示,而浮点数只是一个近似值(用1/32,1/64,1/128等求和)。所以1000*0.1不是100.0。