Java 将从数据库中选择的bigdecimal数字相乘

Java 将从数据库中选择的bigdecimal数字相乘,java,mysql,bigdecimal,Java,Mysql,Bigdecimal,我在数据库中选择一个数字列。例如: BigDecimal total_price_bg; BigDecimal unit_price_bg; if (results.next()) { unit_price_bg = results.getBigDecimal("UNIT_PRICE"); total_price_bg

我在数据库中选择一个数字列。例如:

                BigDecimal total_price_bg;
                BigDecimal unit_price_bg;

                if (results.next()) {
                    unit_price_bg = results.getBigDecimal("UNIT_PRICE");
                    total_price_bg = unit_price_bg.multiply(unit_price_bg); // I have trouble here..
                    System.out.println(total_price_bg);
                }    
第一行可以包含10.25,第二行可以包含7.03,第三行可以包含371.09。我如何用同一个变量乘以大小数多次??真的有可能吗?提前谢谢。

你是说像这样吗

            BigDecimal total_price_bg = BigDecimal.ONE;

            while (results.next()) {
                BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE");
                total_price_bg = total_price_bg.multiply(unit_price_bg.pow(2)); 
            }    
            System.out.println(total_price_bg);
这不断地将单价的平方值合成为可变总价。我计算了单价的平方,因为我注意到你把它乘以它本身,但你的意思可能是:

            BigDecimal total_price_bg = BigDecimal.ONE;

            while (results.next()) {
                BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE");
                total_price_bg = total_price_bg.multiply(unit_price_bg); 
            }    
            System.out.println(total_price_bg);
你是说像这样吗

            BigDecimal total_price_bg = BigDecimal.ONE;

            while (results.next()) {
                BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE");
                total_price_bg = total_price_bg.multiply(unit_price_bg.pow(2)); 
            }    
            System.out.println(total_price_bg);
这不断地将单价的平方值合成为可变总价。我计算了单价的平方,因为我注意到你把它乘以它本身,但你的意思可能是:

            BigDecimal total_price_bg = BigDecimal.ONE;

            while (results.next()) {
                BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE");
                total_price_bg = total_price_bg.multiply(unit_price_bg); 
            }    
            System.out.println(total_price_bg);

为什么不初始化
total price\u bg
BigDecimal.ONEthen
total price\u bg=total price\u bg.multiply(results.getBigDecimal(“单价”))
为什么不初始化
total price\u bg
BigDecimal.ONE然后
total price\u bg=total price\u bg.multiply(results.getBigDecimal(“单价”)))
10.25*7.03*371.09
的总数应为
26739.817675
。谢谢,我将尝试您的解决方案。@sg552使用BigDecimal绝对是明智的选择。您现在可能正在处理较小的数字,但可能并不总是这样,BigDecimal是唯一可以保证不会出现溢出的类型。是的,
10.25*7.03*371.09
的总数应该是
26739.817675
。谢谢,我将尝试您的解决方案。@sg552使用BigDecimal绝对是明智的选择。您现在可能正在处理较小的数字,但可能并不总是这样,BigDecimal是唯一可以保证不会出现溢出的类型。