我有像这样的Float
:
Float f = Float.valueOf("9.222333999444555666");
System.out.println(f); //prints 9.222334
有没有办法在不使用正则表达式的情况下计算 .
符号后的位数:f.toString().split("\\.")[1].length ()
?
最佳答案
只需将值转换为字符串并获取小数点位置即可。
String s = "" + f;
int i = s.indexOf(".")
System.out.println("The number of digits after the decimal point are " + s.length()-i-1
编辑:阅读OP的评论并怀疑如何四舍五入 float 。这个问题在这里得到解答:Format Float to n decimal places
要快速引用,请使用:String.format("%.2f", f)。您必须了解的是,Java 的 Float 和 Double 没有用于操作小数点后精度的方法和属性。 Java 这样做有几个原因,但您应该记住的是将 Float 和 Double 转换为 String,按照您想要的方式操作它们,然后再转换回来。
关于java - 如何检查Float的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37497505/