bigdecimal相关内容
这两个电话有什么区别? (有没有?) // 1. 新BigDecimal(“3.53456”)。round(新的MathContext (4,RoundingMode.HALF_UP)); // 2. new BigDecimal(“3.53456”)。setScale(4,RoundingMode.HALF_UP); 解决方案 提到但未直接解决的一个重点是“pr
..
我有一个BigDecimals集合(在这个例子中,一个 LinkedList ),我想一起添加。是否有可能为此使用流? 我注意到 Stream 类有几种方法 Stream :: mapToInt Stream :: mapToDouble Stream :: mapToLong 每个方法都有一个方便的 sum()方法。但是,正如我们所知, float 和 d
..
我正在开发一个数学解析器,它能够像'5 + b * sqrt(c ^ 2)'一样评估字符串。我正在使用ANTLR进行解析并取得良好进展。现在我跌破了Java类 BigDecimal 并且想:嘿,为什么不在这里考虑精度。 我的问题是Java API不为 BigDecimal 提供三角形方法,如 java.lang.Math 。你知道是否有像Apache Commons这样的好的数学库可以解决这
..
我遇到了两种方法,即从双d中获取BigDecimal对象。 1。 new BigDecimal(d) 2. BigDecimal.valueOf(d) 这将是一个更好的方法? valueOf会创建一个新对象吗? 一般情况下(不只是BigDecimal),推荐什么 - new或valueOf? 谢谢。 解决方案 这是两个独立的问题:“我应该
..
考虑简单的测试类: import java.math.BigDecimal; / ** * @author The Elite Gentleman * * / 公共等级主要{ / * * * @param args * / public static void main(String [] args){ // TODO自动生成的方法stub B
..
在我的小项目中,我需要做一些像Math.pow(7777.66,5555.44)这样的东西只有非常大的数字。我遇到了一些解决方案: 使用双倍 - 但数字太大 使用BigDecimal.pow但不支持分数 使用X ^(A + B)= X ^ A * X ^ B公式(B是第二个数字的余数),但是不支持大X或大A,因为我仍然转换为双 使用某种泰勒系列算法或类似的东西 - 我不是很擅长数学所以
..
如何在Java中设置千位分隔符? 我有BigDecimal的String表示,我想设置千位分隔符并返回String。 解决方案 这应该有用(未经测试,基于JavaDoc): DecimalFormat formatter =(DecimalFormat)NumberFormat.getInstance(Locale.US); DecimalFormatSymbols symb
..
我正在尝试将BigDecimal值向上舍入到小数点后两位。 我正在使用 BigDecimal rounded = value.round(new MathContext(2,RoundingMode.CEILING)); logger.trace(“round {} to {}”,value,rounded); 但它不能始终如一地执行: 舍入0.819至
..
我想用一些以 BigDecimal 类型表示的货币值做一些简单的总结。 BigDecimal test = new BigDecimal(0); System.out.println(test); test.add(new BigDecimal(30)); System.out.println(test); test.add(new BigDecimal(45)); S
..
如何计算BigDecimal的对数?有没有人知道我可以使用的任何算法? 到目前为止,我的谷歌搜索已经提出了(无用的)只想转换为双精度并使用Math.log的想法。 我将提供所需答案的精确度。 编辑:任何基地都可以。如果它在基数x中更容易,我会这样做。 解决方案 Java Number Cruncher:Java程序员数值计算指南使用牛顿方法。本书的源代码可在此处获取。以下
..
我们是否可以仅使用Java API而不是定制的100行算法来计算Java中 BigDecimal 的平方根? 解决方案 我已经用过这个了,效果很好。 以下是算法如何在高级别运行的示例。 编辑:我很想知道下面定义的准确程度。以下是来自官方来源的sqrt(2): (前200位)1.41421356237309504880168872420969807856967187537694
..
我正在尝试从字符串中读取一些BigDecimal值。假设我有这个字符串:“1,000,000,000.999999999999999”,我希望得到一个BigDecimal。有什么办法呢? 首先,我不喜欢使用字符串替换的解决方案(替换逗号等)。我认为应该有一些整洁的格式化程序来为我完成这项工作。 我找到了一个DecimalFormatter类,但是因为它通过双重操作 - 大量的精度是丢失
..
我试图使用longs为我自己的货币类,但显然我应该使用 BigDecimal 。有人可以帮助我开始吗?对于美元货币使用 BigDecimal s的最佳方法是什么,比如至少但不超过2美分的小数点等等。 BigDecimal 很大,我不知道使用哪种方法。此外, BigDecimal 具有更好的精度,但如果它通过 double ,并不是全部丢失?如果我做新的 BigDecimal(24.99),它与使用
..
据我所知,BigDecimal是在Java中表示货币价值的推荐最佳做法。你用什么?您是否更喜欢使用更好的库? 解决方案 BigDecimal 一路走来。我听说有些人创建了他们自己的现金或 Money 类,这些类用货币封装现金值,但是在皮肤下它仍然是 BigDecimal ,可能与 BigDecimal.ROUND_HALF_EVEN 舍入。 编辑:正如Don在他的回答中提到,有像 t
..
为什么以下代码会引发下面显示的异常? BigDecimal a = new BigDecimal(“1.6”); BigDecimal b = new BigDecimal(“9.2”); a.divide(b)//导致以下异常。 - java.lang.ArithmeticException:非终止十进制扩展;没有确切的可表示的小数结果。
..
我必须将我的Web应用程序与支付网关集成。我想以美元输入总金额,然后将其转换为美分,因为我的支付网关库接受的数量为Cents(类型为 Integer )。我发现java中的 Big Decimal 是操纵货币的最佳方式。目前我接受输入为50美元,并将其转换为整数,如下所示: BigDecimal四舍五入= amount.setScale(2,BigDecimal.ROUND_CEILING
..
我使用javax.persistence API和Hibernate在Oracle 11g Express数据库中创建注释和持久实体及其属性。 我有以下属性一个实体: @Column(precision = 12,scale = 9) private BigDecimal weightedScore; 目标是坚持一个十进制值,最多12位数,最多9位 在计算
..
在经历了之前的开发中的代码故障之后,我意识到我需要移动所有基于钱的列来不使用浮点数学。在Java方面,这意味着使用BigDecimal,但是当使用Hibernate / JPA和MySQL 5时,什么是适合于创建该列的MySQL数据类型? 解决方案 DECIMAL和NUMERIC。 DECIMAL和NUMERIC类型推荐的Java映射是 java.math.BigDecimal。
..
我使用Oracle 11g,Java(struts2)和Hibernate开发了一个应用程序。 我有一个名为mytemp的表mytemp_id,它的类型是NUMBER(22, 0)。 在我的mytemp.hbm.xml文件中,id如下:
..
我使用Hibernate作为我们的对象关系映射(Object-Relational Mapping),并为一个模糊的数据库提供了一个自定义的方言。 我从这个数据库中检索的实体有一个列如此: @Column(name =“GROSS_WEIGHT”,precision = 9,scale = 3) private BigDecimal总重量; 数据库将此列定义为数字
..