Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的BigInteger问题_Java_Biginteger - Fatal编程技术网

Java中的BigInteger问题

Java中的BigInteger问题,java,biginteger,Java,Biginteger,也许这个问题很傻,但我是Java新手,我想不出这个问题 所以我有两个类别-数字和大数字,问题是这里Digit2.sub(Digit1)当Digit1为负数时,我得到 线程“main”java.lang.NumberFormatException中的异常:非法嵌入符号字符 位于java.math.biginger。(未知源) 但当我尝试将pass作为参数而不是Digit1,而是示例“-18370”时,一切都正常,但基本上应该是一样的。如果它是积极的,一切都像一个魅力。谁能告诉我哪里出了问题吗?方法

也许这个问题很傻,但我是Java新手,我想不出这个问题

所以我有两个类别-数字和大数字,问题是这里
Digit2.sub(Digit1)当Digit1为负数时,我得到

线程“main”java.lang.NumberFormatException中的异常:非法嵌入符号字符 位于java.math.biginger。(未知源)

但当我尝试将pass作为参数而不是Digit1,而是示例“-18370”时,一切都正常,但基本上应该是一样的。如果它是积极的,一切都像一个魅力。谁能告诉我哪里出了问题吗?方法“add”始终有效,但“sub”仅适用于正数1

已更新
Digit1
为正数或未注释
Digit1.add(Digit2)时,此代码起作用,然后在总和为正时工作。但不是消极的:(


问题是您试图用无效数字(
03781-
)构造一个
biginger
。此字符串是通过在
reverse
方法中反转
-18730
创建的

这是打印时不添加的内容:

C:\>java Digit
-18730
03781-
Exception in thread "main" java.lang.NumberFormatException: Illegal embedded sign character
        at java.math.BigInteger.<init>(Unknown Source)
        at java.math.BigInteger.<init>(Unknown Source)
        at BigDigit.sub(Digit.java:42)
        at Digit.main(Digit.java:15)

反转正整数(
59000
)不会留下嵌入的减号(
00095

我认为错误意味着你在号码中间有一个<代码> ->代码>你可以提供一个我们可以运行的例子吗?顺便说一下,你不需要一个<代码>第一个<代码>或<代码>第二个/代码>字段,也不需要把它存储为一个字符串。你的代码对我来说是有效的。(我添加了丢失的2个括号,假设它们应该是2个独立的顶级类)怎么可能在数字的中间得到<代码> ->代码?你救了我的天!这么愚蠢的错误,我试图找出问题。
C:\>java Digit
-18730
03781-
Exception in thread "main" java.lang.NumberFormatException: Illegal embedded sign character
        at java.math.BigInteger.<init>(Unknown Source)
        at java.math.BigInteger.<init>(Unknown Source)
        at BigDigit.sub(Digit.java:42)
        at Digit.main(Digit.java:15)
C:\>java Digit
59000
00095
77730
03777