编程题【BigDecimal类】
求以下double数组的平均值(四舍五入保留两位小数):
double[ ] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
一开始我的做法是用 double sum来求和,这样显然是不精确的,下面举了个例子

例子:

正确答案 附上代码:
package com.itheima.demo3;
import java.math.BigDecimal;
public class Demo01 {
public static void main(String[] args) {
double[] arr = {0.1, 0.2, 2.1, 3.2, 5.56, 7.21};
BigDecimal sum = new BigDecimal("0.0");//用string类型的0.0来初始化sum
for (int i = 0; i < arr.length; i++) {
//String.valueOf(double d):将 double变量 d 转换成字符串
//因为BigDecimal的接收参数为字符串类型
String str = String.valueOf(arr[i]);
/* BigDecimal bd1 = new BigDecimal(String.valueOf(arr[0]));
sum.add(bd1);*/
sum = sum.add(new BigDecimal(String.valueOf(arr[i])));
}
BigDecimal bd2=new BigDecimal(String.valueOf(arr.length));
System.out.println(sum.divide(bd2, 2, BigDecimal.ROUND_HALF_UP));
}
}
这道题的String.valueOf 起到了很大的作用,就是将double变量转成字符串,只有这样才能在BigDecimal中精确的运用,当然还有BigDecimal初始化、遍历求和中的一些语法小细节。
本文介绍如何使用Java BigDecimal类精确计算给定double数组的平均值,通过String.valueOf将double转换为字符串以便于BigDecimal处理,提供了一个示例代码并强调了转换的重要性。
1183

被折叠的 条评论
为什么被折叠?



