我想检查double值是否有指数。在Math
中没有使用我可以确定的方法。我不想将其转换为字符串,然后使用indexOf()
或contains()
方法。
提前致谢。
答案 0 :(得分:4)
在内部,所有双打都以相同的方式表示。 (它们都有二进制指数,但你没有看到它们。)
它们是否使用指数打印只是格式化问题。测试double 本身是否具有指数是没有意义的。测试是否使用指数格式化的正确方法是获取字符串表示并使用str.contains("E") || str.contains("e")
。
您可以使用format string或DecimalFormat对象来控制double如何转换为String。例如,String.format("%f", 9.7561E-4)
(带指数的数字)返回字符串0.000976
(无指数)。