java - 如何检查Float的精度

标签 java floating-point

我有像这样的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/

相关文章:

c# - 将 double 转换为 float 是否总是返回相同的值?

python - 打印 Python 和 C++ double 时的精度差异

java - 如何解决 ListView 音乐文件中的 ResourceNotFoundException

用于 map 的 Java 8 流收集器,误导性分组错误

java - 使 getLatLng 正常工作,但无法从响应中删除 ( )

c++ - generate_canonical 输出是否跨平台一致?

java - 完成应用程序后,JVM 会做什么?

java - 引用 fx :define block 中的多行字符串变量

python - Django,两个注释结果之间的除法无法正确计算

c++ - 为什么 std::istringstream 在不提升 failbit 标志的情况下生成错误的结果?