`
hezhiyu
  • 浏览: 63009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我遇到的关于BigDecimal的一些用法

    博客分类:
  • java
阅读更多
double douFee = cs.getProcedureFee("11", order.getOrderNum());
//格式化保留两位小数,默认四舍五入了,但需求是"退一法"
//String strFee = new DecimalFormat("0.00").format(bigFee);
//退一法
feeValue = new BigDecimal(douFee).setScale(2, BigDecimal.ROUND_DOWN);
return "pay";


代码如上所示,简单说一下需求,后端返回一个double类型的数值并用douFee保存,直接在前段输出的话可能产生科学计数法,为了使之产生人们能够读懂的普通的十进制数字,我们new一个BigDecimal,并确定了小数点保留后两位和退一法(后面有多大的数字都舍去,相对进一法,后面有多小的数字都进1)的舍入模式。注释那行也可以保留两位小数并返回四舍五入的String值,其不满足退一法,所以舍弃。

知识补充:
BigDecimal转化为String类型的方法,String strFee = feeValue.toString();
分享到:
评论

相关推荐

    Java中BigDecimal类的简单用法

    通过使用其提供的各种构造方法和运算方法,开发者可以有效地控制计算过程中的精度,确保计算结果的正确性。因此,理解并熟练运用BigDecimal类是每个Java程序员必备的技能之一。在编写涉及精确数值计算的代码时,应...

    将 BigDecimal 类型转换为 Integer 类型.pdf

    使用 `toBigInteger()` 方法将 BigDecimal 转换为 BigInteger,然后可以安全地调用 `intValueExact()` 方法,该方法会在值超出 Integer 范围时抛出异常。 4. **其他转换方法** 除了 `intValue()` 和 `...

    BigDecimal详解、代码示例和经常遇到的坑

    ### BigDecimal详解、代码示例和经常遇到的坑 #### 一、BigDecimal概述 `BigDecimal`是Java编程语言中`java.math`包内提供的一种高级数据类型,主要用于处理高精度的十进制数值。与基本数据类型`float`或`double`...

    运用BigDecimal精确计算

    将`BigDecimal`对象转换为字符串时,可以使用`toPlainString()`方法得到不包含科学计数法的字符串,或者使用`toString()`方法。如果需要自定义格式,可以使用`DecimalFormat`类。 6. 注意事项: - 避免直接使用`+...

    高精度JSBigDecimal运算

    `BigDecimal`类在Java等其他语言中是专门用来处理高精度十进制数的,它提供了丰富的算术运算方法,确保计算结果的精确性。在JavaScript中,虽然没有内置的`BigDecimal`类,但开发者可以通过第三方库来实现类似的功能...

    介绍Java的大数类(BigDecimal)和八种舍入模式

    创建BigDecimal对象有两种主要方式:使用构造函数,如`new BigDecimal("0.09")`,或使用静态方法`BigDecimal.valueOf(0.09)`。建议使用字符串构造方式,以避免因double精度问题导致的误差。在转换或打印BigDecimal...

    java代码-BigDecimal转String

    除了上述方法,还有一些其他转换策略,例如使用`toPlainString()`方法,它会返回不带科学计数法的字符串表示。此外,如果你正在使用`NumberFormat`或者`Locale`,可以使用`NumberFormat.getInstance(Locale)`来获取...

    jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    在本案例中,开发者遇到的问题是,前端期望从后端获取的JSON数据中,BigDecimal类型的数值能够保留两位小数,但实际返回的数据丢失了小数部分。 问题的根源在于,默认情况下,Jackson在序列化BigDecimal到JSON字符...

    详谈Java中BigDecimal的一个除法异常

    然而,在使用`BigDecimal`进行除法操作时,如果不进行特殊处理,可能会遇到`ArithmeticException`异常,这个异常通常会在除法运算产生非终止的小数扩张,即无法精确表示的十进制结果时抛出。 异常信息 "Non-...

    Java中使用BigDecimal进行浮点数运算

    如果需要从`double`创建`BigDecimal`并确保精度,可以使用`BigDecimal.valueOf(double val)`静态方法,它的实现是将`double`转换为字符串后再构造`BigDecimal`,避免了直接转换可能产生的精度损失: ```java ...

    Java中BigDecimal类与int、Integer使用总结

    在Java编程语言中,处理高精度的数值计算时,我们常常会遇到浮点数精度丢失的问题,这在涉及金融计算或任何需要精确数值操作的场景下尤为关键。`BigDecimal`类就是为了克服这个问题而设计的,它提供了任意精度的十...

    Calculator:BigDecimal类的便捷包装器,允许计算运算忽略乘和除零的影响

    然而,在进行算术运算时,如果遇到除以零的情况,程序通常会抛出ArithmeticException,这在某些场景下可能会导致程序中断。标题提到的"Calculator"是一个为BigDecimal类设计的便捷包装器,它的主要目的是允许计算...

    Java中如何正确进行浮点数运算

    此外,`BigDecimal`的加减乘除等方法需要明确指定运算规则,例如使用`add()`, `subtract()`, `multiply()`, `divide()`等方法,而不是直接使用算术运算符。 在实际开发中,根据具体需求选择合适的数据类型和运算...

    jackson json 转 map 数值科学计数法的问题解决.docx

    在使用 Jackson 将 JSON 转换为 Map 的过程中,可能会遇到科学计数法的问题。该问题的出现是因为 JSON 中的数值类型太多,在转换过程中可能会出现科学计数法的表示方式。 例如,在将 JSON 字符串转换为 Map 时,...

    bigNumber:用于将BigDecimal和BigInteger结合在一起的Java的bignum库

    在Java编程语言中,处理大数据计算时,我们经常会遇到`BigInteger`和`BigDecimal`这两个类。`BigInteger`提供了任意精度的整数运算,而`BigDecimal`则提供了任意精度的浮点数运算。然而,在实际应用中,我们可能需要...

    BigNumber-源码.rar

    `BigDecimal`是基于Java的大数运算库,它提供了丰富的操作方法,能够保证在执行加减乘除等数学运算时的精度。本文将深入分析`BigDecimal`的源码,探讨其背后的实现原理。 1. **BigDecimal构造与初始化** `...

    Java中实现浮点数的精确计算

    在Java编程中,使用`float`和`double`类型进行浮点数计算时经常会遇到精度丢失的问题。这是因为浮点数在计算机内部是以二进制形式存储的,而某些十进制小数无法用二进制精确表示,从而导致计算结果出现误差。例如,`...

    Jsp开发遇到的70个问题及解决方法记录

    此外,避免使用`float`类型进行精确的数学计算,推荐使用`BigDecimal`类来处理需要高精度的计算场景。 ### 13. ResultSet定位 - **问题描述**:如何获取当前ResultSet的位置。 - **解决方案**:可以通过`ResultSet...

    Java 精确计算-double-float-String

    标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...

    fastJson属性配置说明

    30. **IgnoreErrorGetter**:遇到错误的 getter 方法时,忽略并继续执行。 31. **WriteBigDecimalAsPlain**:控制 BigDecimal 的输出方式,避免科学计数法。 以上属性提供了丰富的定制选项,允许开发者根据实际...

Global site tag (gtag.js) - Google Analytics