注册 登录
编程论坛 JAVA论坛

数值的最大值超出long的最大值。该怎么敲这个代码?

siso789 发布于 2016-10-24 15:39, 3445 次点击
只有本站会员才能查看附件,请 登录
程序代码:
import java.math.BigDecimal;

public class Number {

    public static void main(String[] args) {
byte a=127;
short b=32767;
int c=2147483647;
long d=9223372036854775807L;
bigDecimal=a+b+c+d;
System.out.println("a+b+c+d="+(a+b+c+d));
    }

}

自学看书时看到说把任意的数字相加并求出答案,然后我就把整数类型的4种类型的的最大值相加了,后来发现答案超出long的最大值,不知道该怎么敲代码才能把上面的四个值相加并得出10进制的答案
3 回复
#2
逐鹿2016-10-24 17:22
程序代码:
import java.math.BigDecimal;
public class Datatest {
    public static void main (String[] args){
        BigDecimal bd = new BigDecimal(Long.MAX_VALUE);
        for (int i=0; i<5; i++){
            bd = bd.multiply(bd);
        }
        System.out.println(bd);
    }
}
//结果:7524389324549354423906826059867985026620849363015297363538931775726563448922360699352823055934447022902646222341122938559001631455113911111935986834162529888489589166496153156082961950595130205940515418825492737142009870703723094729573833219186725893664705796908922536873946693338962025677128913290269810452863037095720833321992306590266829063680570727163575013307887922493224702951268500480130872268475832413983301273596593659987073481698566971666199551326463654838858806614357333644155075100054006119086176889755042521830947937439287312252837378604783504886791100277728803500511128107182376171843092480001

#3
杨力Java2016-11-18 20:37
可以考虑拿字符串做
#4
JavaJack2016-11-19 12:07
import java.math.BigDecimal;
public class BigDecimalDemo {
    public static void main(String[] args) {
        byte a=127;
        short b=32767;
        int c=2147483647;
        long d=9223372036854775807L;
        BigDecimal big=new BigDecimal(a+b+c+d);
        System.out.println("a+b+c+d="+ big);
     }
 }
BigDecimal表示的是一个类,你没有声明bigDecimal是BigDecimal类的对象!
这个是我用你的程序修改的,可以达到目的!虽然很渣,但是可以稍作借鉴
和你一样,我也是自学的兄弟加油
1