java 中数据计算

      在编码的时候,偶尔会进行数字计算,编码完成后,编译、运行,自己测试,都通过了,但是上生产环境后,一天或者一个星期没问题,可能有一天会出错,查看日志,原来是内存溢出,原来是数字溢出。代码如果写严谨一点就应该发现在java程序中有与数据类型有长度限制,所以一般数字计算都不用原始数据类型,需要转换成BigInteger或者BigDecimal。
源码如下:
package com.think.cla;

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigNumberMath {
	
	public void NumberMath(int x,int y ,double i,double j){
		
		// 加法运算
		BigInteger numintj = BigInteger.valueOf(x).add(BigInteger.valueOf(y));
		BigDecimal numdouj = BigDecimal.valueOf(i).add(BigDecimal.valueOf(j));
		
		//减法运算
		BigInteger numintjj = BigInteger.valueOf(x).subtract(BigInteger.valueOf(y));
		BigDecimal numdoujj = BigDecimal.valueOf(i).subtract(BigDecimal.valueOf(j));
		
		//乘法运算
		BigInteger numintc = BigInteger.valueOf(x).multiply(BigInteger.valueOf(y));
		BigDecimal numdouc = BigDecimal.valueOf(i).multiply(BigDecimal.valueOf(j));
		
		//除法运算
		BigInteger numintcc = BigInteger.valueOf(x).divide(BigInteger.valueOf(y));
		BigDecimal numdoucc = BigDecimal.valueOf(i).divide(BigDecimal.valueOf(j));
		
		System.out.println("整数数据相加:"+numintj);
		System.out.println("精度数据相加: "+numdouj);
		
		System.out.println("整数数据相减:"+numintjj);
		System.out.println("精度数据相减: "+numdoujj);
		
		System.out.println("整数数据相乘:"+numintc);
		System.out.println("精度数据相乘: "+numdouc);
		
		System.out.println("整数数据相除:"+numintcc);
		System.out.println("精度数据相除: "+numdoucc);
	}
	
}

转载于:https://my.oschina.net/gao0516/blog/123923

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值