dfkt.net
当前位置:首页 >> BigDECimAl求和 >>

BigDECimAl求和

因为浮点类型(double,float)进行运算(加减乘除)等,会有精度问题.如果是货币等 需要高精度的运算的时候. 建议使用BigDecimal类来解决import java.math.BigDecimal;public class Demo { public static void main(String[] args) { double d1 = 0.

搜一下:2.3 +3.4用java求和结果是为啥5.6999999999999,而不是5.7?是由于do

java.math.BigDecimal 不可变的、任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成. 如果为零或正数,则标度是

创建一个class对象person,存放pv,paymoney,debtMoney这三个属性再次创建map集合sum,用于存放统计结果创建对象流ObjectStream,每次读取一个person对象,读取后进行累加操作.得到求和后的map

第一种:先用递归写一个求阶乘的方法,然后在循环累加一下.这个是最笨也是最简单的方法第二种:貌似这种求和有表达式,如果能搞出表达式,然后代入一下即可

这个数列是发散的,没法求公式,或者我才疏学浅,有高人知道.

100的阶乘要用bigdecimal才可以 import java.math.BigDecimal; public class Information { public static void main(String[] args) { BigDecimal bg = new BigDecimal(1L); int i = 1; while(i <= 100){ bg = bg.multiply(new BigDecimal(i++)); } System.out.println(bg.toString()); } }

在循环前面加上long beginTime = System.currentTimeMillis();在运算完成后再加上long endTime = System.currentTimeMillis();然后写上:System.out.println("执行时间:"+(endTime - beginTime));

public class test { public static void main(String[] args) throws Exception { int sum = 0; for(int i=1;i<=20;i++){ int temp = 1; for(int j=1;j<=i;j++){ temp*=j; } sum+=temp; } System.out.println("1-20阶乘的和为:"+sum); } } 答案补充:上面算法只适合于

public static void main(String[] args) { Double mm = 0D; for (int i = 1; i <= 100; i++) { Double nn = 1D; for (int j = 1; j <= i; j++) { nn *= j; } mm += nn; } System.out.println(mm); }

网站首页 | 网站地图
All rights reserved Powered by www.dfkt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com