BigDecimal类型的7.485449E+7变成BigDecimal类型的75000000
时间: 2023-08-03 15:32:37 浏览: 92
你可以使用 BigDecimal 的 `toPlainString()` 方法将科学计数法转换为普通的十进制表示法。然后,你可以使用 BigDecimal 的 `BigDecimal(String val)` 构造函数将这个字符串表示形式的数字转换为一个新的 BigDecimal 对象。
以下是一个示例代码:
```
BigDecimal bd1 = new BigDecimal("7.485449E+7");
String plainString = bd1.toPlainString();
BigDecimal bd2 = new BigDecimal(plainString);
System.out.println(bd2);
```
输出结果为:"74854490"。这个代码将科学计数法 "7.485449E+7" 转换为普通十进制表示法 "74854490",然后使用 `BigDecimal(String val)` 构造函数将其转换为一个新的 BigDecimal 对象。这个新的 BigDecimal 对象就是以普通的十进制表示法存储的,而不是科学计数法。
相关问题
1!+2!+....+100!
1!+2!+....+100!的结果是94269001683709979260859834124473539872070722613982672442938359305624678223479506023400294093599136466986609124347432647622826870038220556442336528920420940313。
这个结果可以通过Java代码实现,使用BigDecimal类来处理大数运算。具体实现方法可以参考引用中的代码。其中,multiply()方法可以用来计算BigDecimal对象中的值相乘,返回一个新的BigDecimal对象。
java求1!+2!+3!+....+100!
这个问题可以使用循环来解决。循环从1到100,每次计算阶乘并将其加到总和中。有两种方法可以实现这个问题,一种是使用普通的int类型,另一种是使用BigDecimal类来处理超过16位有效位的数。
以下是两种方法的代码:
方法一:
public static int factorialSum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
int factorial = 1;
for (int j = 1; j <= i; j++) {
factorial *= j;
}
sum += factorial;
}
return sum;
}
方法二:
import java.math.BigDecimal;
public static BigDecimal factorialSum(int n) {
BigDecimal sum = BigDecimal.ZERO;
BigDecimal factorial = BigDecimal.ONE;
for (int i = 1; i <= n; i++) {
factorial = factorial.multiply(BigDecimal.valueOf(i));
sum = sum.add(factorial);
}
return sum;
}
阅读全文