package com.wlh.test;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
test5();
}
public static void test5() {
//====两个浮点数类型的字符串,如何转换为浮点相加,然后保持精度到小数点后2位呢?//
//转为float,精度丢失
float f = (float) (851570.78) + (float) (-23825.13);
//转为double,精度保持
double d = (double) (851570.78) + (double) (-23825.13);
double d2 = Double.parseDouble("851570.78")+ Double.parseDouble("-23825.13");
System.out.println(f);
System.out.println(d);
System.out.println(d2);
System.out.println("---------------------------------------------------------");
//转为float,精度保持
BigDecimal bigDecimal0 = new BigDecimal("851570.78");
BigDecimal bigDecimal1 = new BigDecimal("-23825.13");
//保持小数点后2位
BigDecimal bigDecima2 = new BigDecimal(bigDecimal0.floatValue()+ bigDecimal1.floatValue()).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bigDecima2);
System.out.println("---------------------------------------------------------");
//转为double,精度保持
BigDecimal bigDecimal3 = new BigDecimal("851570.78");
BigDecimal bigDecimal4 = new BigDecimal("-23825.13");
//保持小数点后2位
BigDecimal bigDecimal5 = new BigDecimal(bigDecimal3.doubleValue()+ bigDecimal4.doubleValue()).setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(bigDecimal5);
//====单个浮点数,如何保持精度到小数点后两位呢?=======================//
System.out.println("---------------------------------------------------------");
float a=134.567f;
//这种方法方便
float b1 = (float)(Math.round(a*100))/100;
System.out.println(b1);
//这个方法也简单,不过还要再转成float型:
String b2 = new DecimalFormat("###,###,###.##").format(a);
float b3=new Float(b2);;
System.out.println(b3);
//这个也可以用
BigDecimal bd = new BigDecimal((double)a); //转为double不会丢失精度
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
float b4 = bd.floatValue();
System.out.println(b4);
}
}
分享到:
相关推荐
- **解释**:该示例中,1.2345被四舍五入到3位小数后变成了1.235。 ##### 2. **TRUNC 函数 - 截断** - **函数定义**:`TRUNC(number, [decimal_places])` - `number`:需要处理的数字。 - `decimal_places`:...
超出长度的数据会被截断或四舍五入。 3. **日期类型**: - `DATE`:Oracle 的日期/时间数据类型,包含了世纪、年、月、日、小时、分钟和秒。可以使用 `TO_DATE` 函数将字符串转换为日期,`TO_CHAR` 函数将日期转换...
通过以上分析,我们可以了解到Oracle数据库中处理小数点前零丢失问题的关键在于理解数据类型之间的转换规则,并利用`TO_CHAR`函数进行格式化,以确保数据的完整性和一致性。在设计数据库结构或编写SQL语句时,应充分...
### Oracle基本数据类型详解 #### 一、概述 Oracle 数据库提供了多种数据类型来满足不同的需求,这些数据类型包括字符型、数值型、日期时间型、大对象类型等。了解这些基本数据类型对于正确设计数据库表结构至关...
### Oracle 数据类型详解 #### 一、概述 Oracle 数据库是一种广泛使用的数据库管理系统,它支持多种数据类型以满足不同业务场景的需求。数据类型的选择对于确保数据的准确存储和高效处理至关重要。本文将详细介绍 ...
在Oracle中,数据类型是定义数据库中字段或变量所能存储的数据种类的关键元素,而存储方式则关乎如何在磁盘上保存这些数据以及如何优化空间利用率。以下是对Oracle数据类型及存储方式的深入探讨。 ### 第一部分:...
### Oracle 数据类型详解 #### 一、概述 Oracle 数据库提供了丰富的数据类型,这些类型能够满足各种业务场景的需求。在数据库设计中合理选择数据类型对于提高数据库性能、减少存储空间和确保数据一致性等方面都至...
在Java编程中,我们需要将数据从数据库中读取出来或存入数据库,这就涉及到了数据类型的对应问题。本文主要探讨的是Java与Oracle数据库之间数据类型的映射关系,特别是针对"Number"和"Date"类型。 首先,让我们关注...
日期时间数据类型包括DATE(存储日期和时间,精确到秒)和TIMESTAMP(存储日期、时间及时区信息,精确到小数点后6位)。RAW和LONG RAW用于存储二进制数据,而LOB(大对象)数据类型如BLOB、CLOB和BFILE则用于存储...
- **舍去小数位数**: 如`id number(4,-2)`则意味着数值会被四舍五入到百位,例如插入`9999`时,实际存储值为`10000`。 ### 错误处理 在进行数据操作时,可能会遇到错误提示,如`ORA-01438: value larger than ...
例如,`ROUND(10.98*10)/10`将10.98四舍五入到一位小数,结果为11。`ROUND`函数在多数数据库系统中都有提供,其第二个参数可以用来指定要四舍五入的小数位数。 2. **向上取整**:使用`CEIL`函数。例如,`CEIL(10.63...
在第一道题中,`ROUND(45.953, -1)`会将数字四舍五入到最近的十位数,即50;`TRUNC(45.936, 2)`则会去掉小数点后第二位及以后的数字,结果为45.93。 2. SQL运算符优先级:在第二题中,需要理解算术运算符的优先级。...
四舍五入函数ROUND(n[,m])允许我们根据指定的小数位数对数值进行四舍五入。其中,n是要四舍五入的数值,m则是保留的小数位数。如果m为正数,则保留小数点后m位;如果m为负数,则保留小数点前m位;若省略m,则默认为0...
13. **Round(value, places)**: 对value进行四舍五入,places参数控制小数点后的位数,如果为负数则控制小数点前的位数。 14. **Sign(value)**: 返回value的符号,如果是负数返回-1,如果是正数返回+1,如果是0则...
15. Round(value, places):返回 value 四舍五入到小数点后 places 位 16. Sign(value):返回 value 的符号,负数返回-1,正数返回+1,0 返回 0 17. Sin(angle):返回 angle 的正弦值 18. Sqrt(number):返回 number...
这对于财务计算和数据分析非常实用,比如`ROUND(45.923, 2)`会将数字四舍五入到小数点后两位,结果为45.92。 除了这些基本的函数,Oracle还提供了许多其他功能强大的函数,如日期函数(如`DATE`,`EXTRACT`,`ADD_...
Oracle提供多种数据类型,包括数值型(如NUMBER、FLOAT、INTEGER等)、字符型(CHAR和VARCHAR2)、日期时间型(DATE、TIMESTAMP等)、二进制数据类型(RAW、BLOB、BFILE等)以及其他复杂类型。 在数值型数据类型中...
* TIMESTAMP:秒值精确到小数点后 6 位 Oracle 数据库语句大全还包括各种 SQL 函数,例如 SYSDATE 和 SYSTIMESTAMP,用于返回系统当前日期、时间和时区。 三.数据控制语言(DCL) 数据控制语言(DCL)用于控制...
例如,你可以使用ROUND(123.456, 2)来将数字四舍五入到小数点后两位。 二、字符串函数 在处理字符数据时,字符串函数非常有用。LIKE和INSTR()用于字符串搜索,SUBSTR()用于提取子字符串,UPPER()和LOWER()用于大小...
- **`round(23.652, 2)`**: 四舍五入到小数点后两位(结果为 23.65)。 - **`round(23.652, -1)`**: 四舍五入到小数点前一位(结果为 20)。 3. **日期处理函数** - **`to_char(sal, '$99,999.9999')`**: 将数字...