输入若干对浮点数,对每对浮点数输出其精确的和与乘积。 以下输入样例为两对浮点数输入,实际上有可能有不定对数的浮点数需要输入计算。 图例 注1:直接使用double类型数据进行运算,无法得到精确值。 5 注2:输出时直接调用BjgDecimal的toString方法。
时间: 2024-09-27 11:05:02 浏览: 55
为了处理浮点数的精确加法和乘法,我们可以使用BigDecimal类,这是Java中的高精度数学库,可以避免浮点数运算中的舍入误差。下面是实现这个功能的一个简单示例:
```java
import java.math.BigDecimal;
public class PrecisionCalculator {
public static void main(String[] args) {
// 示例输入
double[] pairs = {5.0, 3.14159, 2.71828}; // 可以替换为任意浮点数对
for (int i = 0; i < pairs.length - 1; i++) {
BigDecimal number1 = new BigDecimal(pairs[i].toString());
BigDecimal number2 = new BigDecimal(pairs[i + 1].toString());
BigDecimal sum = number1.add(number2);
BigDecimal product = number1.multiply(number2);
System.out.println("Pair (" + pairs[i] + ", " + pairs[i + 1] + ")");
System.out.println("Sum: " + sum.stripTrailingZeros().toPlainString()); // 去掉尾随零
System.out.println("Product: " + product.stripTrailingZeros().toPlainString());
System.out.println();
}
}
}
```
在这个例子中,我们首先将浮点数转换为BigDecimal对象,然后利用`add`和`multiply`方法进行精确计算。最后,使用`stripTrailingZeros`去掉结果尾部多余的零,并通过`toPlainString`将其转换回字符串格式输出。
阅读全文