This question already has answers here:
Use of java.math.MathContext
                                
                                    (5个答案)
                                
                        
                                4年前关闭。
            
                    
首先,我的搜索技巧可能不如我希望的那样,所以也许这种问题已经存在。如果是这样,请告诉我。

请参见下面的代码:

new BigDecimal("5").add(new BigDecimal("7"));




new BigDecimal("5").add(new BigDecimal("7"), mathContext);


在哪种情况下,我真的需要一个数学上下文(除除法)?

除非进行除法运算,否则我不会使用mathcontext。据我所知,这种方法一直有效,那么这里的弊端可能是什么?我需要加,减和乘的数学上下文吗?我对BigDecimal不太满意,我只是想用它来避免丢失任何信息,例如使用double时。
正如我有时看到带有添加内容的mathcontext的代码一样,我很害怕仅将其删除是因为我认为它没有用...



我读了question,但并未真正找到针对我特定问题的正确答案...
我从不带mathcontext的BigDecimals开始,然后使用它们进行计算。所以我的问题是,在信息丢失/准确性等方面,我是否还会有缺点?还是这只会带来最大的信息,仅此而已?

编辑:我不想舍入,永远。当然,在除法为1/3的情况下,我必须这样做,但是在加,乘和减的情况下,我不需要任何舍入。在任何情况下我都需要数学上下文吗?

最佳答案

如果要进行数学运算,则需要四舍五入。

如果将两个数字加,减或乘以小数点后的部分,并且想将结果取整,则也可以使用mathcontext。

如果您不需要四舍五入,则不需要。

因此,不仅要避免无休止的问题像1/3那样划分

关于java - 加,减和乘所需的Mathcontext吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30500150/

10-09 05:49