有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    是的,所有可能的int值都可以安全地往返到double

    您可以使用以下代码进行验证:

        for (int i = Integer.MIN_VALUE; ; i++) {
            double d = i;
            if (i != (int) d) {
                throw new IllegalStateException("i can't be converted to double and back: " + i);
            }
            if (i == Integer.MAX_VALUE) {
                break;
            }
        }
    

    请注意,我没有使用正常的for循环,因为它要么跳过Integer.MAX_VALUE要么无限期地循环

    请注意,对于int/floatlong/double来说,这是不正确的