这里就是我们所尝试,但那些事非的作品...变化6.51 6.50在Java的BigDecimal
BigDecimal Total_Discount=new BigDecimal(10.00);
BigDecimal Amount_To_User=new BigDecimal(00.00);
BigDecimal Amount_To_Me=new BigDecimal(00.00);
Amount_To_User=Total_Discount.multiply(new BigDecimal(0.65)).setScale(2,BigDecimal.ROUND_UP); //65% of the amount
Amount_To_Me=Total_Discount.multiply(new BigDecimal(0.35)).setScale(2,BigDecimal.ROUND_UP); //35% of the amount
由65%和35分割数值,以便10将是6.50和3.50,但我正在使用BigDecimal.DOWN我得到6.50我已经有6.51,我需要改变,以6.50
Amount_To_User=Amount_To_User.setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(Amount_To_User); //Gives the value 6.51
我想改变这种状况6.51 6.50值越来越6.51但这并不工作
如果您想分割金额,您最好只计算一个乘以乘数的值,另一个乘以总账户的相减值。在这种情况下,满足公式'total = am_user + am_me'。 – Robert
请勿使用浮点值作为Bigdecimal的值。使用整数或字符串,例如'valueOf(int)'或'new BigDecimal(string)'。如果您想要BigDecimals提供的准确性,请远离浮点。 –