在Hibernate 的使用中出了一些小意外.
1 查询中,如针对段查询,通常情况下返回 Ojbect[] 但,如仅仅查询一个字段会返回 Object
2 使用SQL查询中Decimal 会生成 BigDecimal.
这就是BigDecimal 的用处了.
public class NumberTest {
public static void main(String[] args) throws Exception {
//新建 BigDecimal
BigDecimal bigDecimal = new BigDecimal("12.10");
//加运算
BigDecimal addDecimal = bigDecimal.add(new BigDecimal(12.10f));
//除运算
BigDecimal divideDecimal = addDecimal.divide(new BigDecimal(12));
System.out.println(bigDecimal);
//注意 Double 和 float 在Java 中的表示形式
System.out.println("addDecimal : " + addDecimal);
System.out.println("divideDecimal : " + divideDecimal);
System.out.println("addDecimal.doubleValue() : " + addDecimal.doubleValue());
System.out.println("divideDecimal.intValue() : " + divideDecimal.intValue());
MathContext content = new MathContext(4);
//negate四舍五入 setScale设置精度
System.out.println(addDecimal.negate(content).setScale(6));
DecimalFormat format = new DecimalFormat();
format.applyPattern("#0.0000");
System.out.println(format.format(divideDecimal));
//建立百分比格式化引用 DecimalFormat 是NumberFormat 的子类
NumberFormat percent = DecimalFormat.getPercentInstance();
System.out.println("divideDecimal : " + divideDecimal);
System.out.println(percent.format(divideDecimal));
}
}
BigDecimal 就这些吧.
分享到:
相关推荐
BigDecimal 使用方法小节:包含构造方法及和、差、商、积等运算方式
本文将深入探讨 `BigDecimal` 类的基本概念、特点以及如何使用它来进行精确的算术运算。 #### 一、基本概念 `BigDecimal` 类提供了一种可以进行任意精度定点数算术的方法。这意味着它可以存储一个数值的任意小数...
如果 `BigDecimal` 包含小数,但你想保留小数位并将小数部分转化为整数,可以先使用 `setScale()` 方法调整小数位,然后再调用 `intValue()`。例如: ```java BigDecimal bigDecimal = new BigDecimal(1.25); ...
- **避免浮点数运算误差**:在处理涉及小数点的运算时,使用BigDecimal可以避免由浮点数运算带来的误差问题。 ## 二、BigDecimal到Double的转换 ### 2.1 使用doubleValue()方法 最简单的方式是通过BigDecimal类...
本文将基于提供的代码片段来详细解释如何使用 `BigDecimal` 进行计算,并深入探讨其应用场景。 #### 关键知识点 ##### 1. BigDecimal 类的概述 `BigDecimal` 是 Java 中的一个类,它能够提供对任意精度的十进制数...
总结,Java 中将 BigDecimal 转换为 Integer 需要考虑数值范围限制,当值过大时,可以借助 BigInteger 类进行转换。在实际编程中,应根据具体需求选择合适的转换方法,并注意处理可能出现的异常情况,确保程序的健壮...
Java中的`BigDecimal`类是用于表示和操作高精度...总结,`BigDecimal`在Java中扮演了高精度计算的重要角色,尤其是在金融、会计等领域。通过使用其提供的方法,开发者可以确保在进行数值计算时获得准确无误的结果。
- `BigDecimal(double val)`:使用double值构造BigDecimal时,由于double的精度问题,可能会导致非预期的结果,如示例中的1.22被转换成了1.219999999999999973。 - `BigDecimal(String val)`:推荐使用此构造方法...
总结起来,Java的BigDecimal类是处理高精度计算的关键工具,它解决了浮点数精度问题,提供了丰富的舍入策略,以确保财务和其他需要精确计算的场景下的正确性。在实际开发中,尤其是在涉及金钱交易或需要精确数值的...
本文主要介绍了 Java 中的 BigDecimal 和 double 的示例及相关问题解析,展示了 BigDecimal 的常用方法和使用示例,展示了使用 BigDecimal 进行四则运算的示例,最后总结了 BigDecimal 的优点。
总结起来,Java的`BigDecimal`类是解决浮点数精度问题的理想选择,尤其在商业计算中。它提供了丰富的API用于精确的数学运算,但使用时需注意构造器的选择和类型转换的正确操作。同时,应避免在不必要的场合使用...
总结起来,`BigDecimal`是Java中用于高精度数学计算的类,适合处理财务、货币或其他需要精确数值计算的场景。而`double`和`float`则适用于对精度要求不高的科学计算。在使用`BigDecimal`时,需要注意其构造方法和...
总结一下,`BigDecimal`到`String`的转换主要涉及`toString()`、`DecimalFormat`以及`NumberFormat`。在处理金融计算时,确保精度是至关重要的,而`BigDecimal`和相关的转换方法可以帮助我们实现这一点。理解这些...
总结来说,Java中的`BigDecimal`类是解决浮点数精度问题的关键工具。通过使用`BigDecimal`,开发者可以确保在进行高精度数学运算时得到准确的结果。然而,由于每次运算都会创建新的对象,所以在性能敏感的场景下,...
### Java SE 基础常用类使用归纳总结 在Java编程语言中,了解并熟练掌握常用的类是非常重要的,这些类提供了丰富的功能,可以帮助开发者高效地完成各种任务。本篇文章将针对给定文件中的内容,详细解释Java SE基础...
总结来说,"Calculadora-emjava"项目展示了如何使用Java的BigDecimal类来构建一个安全、精确的数学计算服务。通过理解BigDecimal的特性,我们可以为需要高精度计算的业务场景提供可靠的解决方案。同时,项目也涉及到...
- `BigDecimal(String val)`:推荐使用字符串的方式创建`BigDecimal`对象,以确保精度不丢失。 ```java BigDecimal bd1 = new BigDecimal("0.1"); // 推荐使用 BigDecimal bd2 = new BigDecimal(0.1); // 不...
### Java Double 精度问题总结 在Java编程语言中,`double` 类型是一种用于表示64位浮点数的原始数据类型。虽然 `double` 提供了相对较高的精度,但在涉及精确数学运算(特别是涉及到小数值)时,由于其内部采用二...
总结来说,Java中的`BigInteger`和`BigDecimal`是处理大数据和高精度计算的关键工具。它们允许开发者在需要精确结果时,不受标准整数和浮点数类型精度限制的影响,从而保证计算的正确性和可靠性。在进行涉及货币计算...
1. **使用`Double.toString()`**:在创建`BigDecimal`对象时,使用`Double.toString()`而不是直接使用`double`值,可以避免精度损失。 2. **异常处理**:当提供的`scale`小于0时,应该抛出异常,以防止程序出现错误...