一、需求中要求查到一个字段的值然后保持小数点后2位
//如果采用如下方法从ResultSet得到一个数字,而这个数字大于40000,则得到的数据将不准确
float zcxxhj+=rss.getFloat(3);
//而如果采用double就没有问题
double zcxxhj+=rss.getDouble(3);
//四舍五入小数点后2位
list.add(new BigDecimal(zcxxhj).setScale(2, BigDecimal.ROUND_HALF_UP));
二,如果要求从数据库查出来的数保持到小数点后2位,然后直接再前台展示
那么我们可以采用如下查询方法:
例子:
select fpdm,
fphm,
fkdw,
to_char(kprq, 'yyyy-mm-dd'),
to_char(xxhj, 'FM9999999999990.00'),
Decode(fpzt, '1', '正票', '2', '红票', '3', '废票')
from wskp_fpkj_zbxx_111000861071
where 1 = 1
and nsrsbh = '110999999999999'
其中的xxhj是number类型,我们可以将其通过 to_char(xxhj, 'FM990.00'),保持小树点后最少2位,小数点前面做多3位,最少1位;
又如 to_char(xxhj, 'FM9990.0099'),就是保持小数点后最少2位,最多4位,小数点前面做多4位,最少1位
三、如果要求查到的数相加后保持小树点后2位
double d=rss.getDouble(3)+ rss.getDouble(4);
BigDecimal bigDecimal= new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP);
beanData.setXxhj(bigDecimal.toString());
分享到:
相关推荐
但是,这种自动转换可能会导致意料之外的结果,特别是在处理NULL值、精度丢失或格式不匹配时。 4. **问题与风险**:虽然自动类型转换方便了开发,但也会带来潜在的问题。比如,当字符串转换为数字失败时,可能会...
Oracle中的DATE类型存储了世纪、年、月、日、小时、分钟和秒,具体可以达到小数点后三位的秒数精度。由于日期时间型数据需要记录时间信息,其存储格式通常为7个字节。 LOB数据类型包括CLOB、NCLOB和BLOB等,用于...
本文主要探讨的是在处理小于1的小数时,使用`CHAR`类型可能导致小数点前的零被丢失的问题,以及如何通过`TO_CHAR`函数来解决这个问题。 首先,我们要了解问题的起源。当Oracle数据库中的字段用于存储小于1的小数,...
需要注意的是,这种方法有一定的局限性,比如当数字位数过长时可能会导致精度丢失。 ##### 方法二:使用自定义函数 除了使用`TRANSLATE`函数之外,我们还可以编写一个自定义的PL/SQL函数来判断一个字符串是否可以...
- `NUMBER`:这是Oracle中最通用的数值类型,可以存储整数、小数和浮点数,范围广泛,具有38位精度。`NUMBER(p,s)`中,`p`表示总位数(包括整数和小数部分),`s`表示小数部分的位数。 3. **DATE数据类型**: - `...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,其SQL(结构化查询语言)语法是管理和操作Oracle数据库的核心。本速查涵盖了Oracle SQL中的关键知识点,包括函数、语句、安装与卸载流程以及常用查询工具...
- **Timestamp**: Oracle数据库支持多种时间类型,其中`Timestamp`是最常用的一种,它可以存储日期和时间信息,精度可以达到毫秒级别。这对于需要记录精确时间的应用场景来说非常重要。 #### 三、数据定义语言(DDL...
错误的选择可能导致数据丢失、存储浪费、查询缓慢等问题。例如,如果将大量文本数据存储在CHAR类型中,而实际文本长度远小于定义的长度,那么将浪费大量的存储空间。相反,如果将数值数据存储在VARCHAR2中,则可能因...
varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
了解并合理使用数字类型可以帮助避免意外的数据丢失或精度问题。 通过上述总结,我们可以看出SQL语句优化涉及多个方面,包括但不限于合理的索引设计、查询结构优化、数据类型选择等。正确应用这些原则和技术,可以...
- `DECIMAL(5,2)`:货币类型,精度与`NUMBER`相同。 - **日期类型**: - `DATE`:表示日期和时间。 - `TIMESTAMP`:更高精度的时间戳类型。 - **SQL语句**: - **分类**: - DQL(Data Query Language):...
### Oracle Flashback 闪回技术详解 #### 一、引言 在Oracle数据库管理中,闪回技术(Flashback)是一种非常重要的数据恢复工具。它允许用户和管理员以一种简单而有效的方式,恢复误删、误改的数据。本文将详细介绍...
- `data_type`指定了参数的数据类型,但不能指定精度,如只能用`NUMBER`而非`NUMBER(2)`。 - `IS`或`AS`标志着过程体的开始,这里可以声明局部变量,不需要`DECLARE`语句。 - `declaration_section`用于声明过程内部...
8. **其他可能感兴趣的文章**: 提到的其他文章涉及到Oracle中的数字字段检测、MyBatis动态SQL、Oracle BLOB类型字段的处理、获取表信息和字段注释、创建自增ID字段、以及处理字段长度超限和清除特殊字符的问题,这些...
然而,由于没有预定义的精度,`N`类型的数据在进行计算时可能会导致精度丢失,因此在处理财务数据等需要精确计算的场景下,通常建议使用带有固定精度和小数位数的数据类型,如`DECIMAL`或`P`。 在ABAP编程中,你...
- 创建表时,常用字段类型包括`CHAR`、`VARCHAR2`、`NUMBER`(带精度)、`DATE`等。 - 字段顺序和约束设计会影响性能,建议将较小的非空字段放前面,可能为空的字段放后面。 - 可以设定字段默认值、唯一性(`...
当尝试插入或更新的数据超过了该字段的长度限制时,Oracle会抛出错误`ORA-01438`,提示“value larger than specified precision allowed for this column”,即实际值的长度超出了该列允许的最大精度。这个错误通常...
此外,处理小数位时还要注意溢出和精度丢失的问题。比如,浮点数类型在存储和计算过程中可能存在微小的误差,而定点数类型虽然能保证精度,但存储空间相对较大,且超出预设精度的运算可能导致错误。因此,在设计...
在某些情况下,PL/SQL会自动进行类型转换,但这种做法可能会导致数据丢失或精度降低。 **3、显式转换VS隐式转换** 通常推荐使用显式转换,因为它更加安全且易于理解。 **4、DATE值** 对于日期时间类型,需要特别...
- `NUMBER`:用于表示数值,可以指定精度和小数位数。 - `INTEGER`:整数类型。 - `BINARY_INTEGER`:二进制整数类型。 2. **字符型**: - `VARCHAR2`:变长字符串类型。 - `CHAR`:固定长度的字符串类型。 3. ...