有 Java 编程相关的问题?

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

java算法:整数太大

这里有一个非常简单的问题。有什么方法可以将下面的参数转换为long

我想要两个不同参数之间的绝对差,但最终出现了“java:integer number too large”错误

我想,问题是文字总是被解释为整数。我认为在Diff()方法中将它们重铸为long就足够了

有没有办法将“L”(将整数转换为长整数)连接/附加到参数

我挠头已经有一段时间了…:/

public class Difference {
    public static void main(String[] args) {
        Diff(10,12);
        Diff(71293781758123,72784);
        Diff(1,12345677654321);
        Diff(1,2147483647);
    }

    public static Long Diff(long a, long b) {

        return Math.abs(a - b);

    }
}



共 (1) 个答案

  1. # 1 楼答案

    您可以将参数作为String传递,而不是尝试附加L

    public class Main {
        public static void main(String[] args) {
            System.out.println(diff("10", "12"));
            System.out.println(diff("71293781758123", "72784"));
            System.out.println(diff("1", "12345677654321"));
            System.out.println(diff("1", "2147483647"));
        }
    
        public static Long diff(String a, String b) {
            return Math.abs(Long.parseLong(a) - Long.parseLong(b));
        }
    }
    

    输出:

    2
    71293781685339
    12345677654320
    2147483646
    

    注意:您应该努力遵循Java naming conventions,例如,方法的名称应该是diff,而不是Diff