从Oracle中读取的NUMBER类型一般在java中用什么型

从Oracle中读取的NUMBER类型一般在java中用什么型,第1张

数据库中的number类型在java类对应的类型:

1如果number类没有设置小数位位数,默认小数位数为0,则在java类中可以使用int或者long对应;

2如果number类设置小数位位数,在java类中可以使用double类进行对应。

注:也可以使用基本类型的包装类进行对于,比如double的包装类为Double

在显示时候调用的是Double类的toString()方法。原因如下:

而Double的toString()方法实际是调用了FloatingDecimal类的toJavaFormatString()方法,如下图

研究源码发现:科学计数法展示是因为FloatingDecimal类的decExponent属性

那么decExponent属性究竟是什么呢?简单来说,

就是小数点向左移动decExponent就是正数,向右移动就是负数。移动几位就是几。

而具体移动规则是移动到小数点左边为0,右边为非0时候停止。

import javatextDecimalFormat;

public class Demo {

public static void main(String[] args) {

Double d = 129;

//格式化类

String sal = new DecimalFormat("#00")format(d);

Systemoutprintln(sal);

}

}

你如果是要普通比较直接用数学符号即可,指的在其jvm允许的范围内如果,你是要很准确的精度比较运算,由于精度问题,可能会有误差,建议使用BigDecimal类型!

//普通比较

Double obj1 = new Double("0001");

Double obj2 = new Double("00011");

obj1compareTo(obj2);

//精度准确比较

double a=obj1;

double b=obj2; 

BigDecimal data1 = new BigDecimal(a); 

BigDecimal data2 = new BigDecimal(b); 

data1compareTo(data2); 

//该方法两种类都有

public int compareTo(BigDecimal val)

/将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个 BigDecimal对象(如,20 和 200)被认为是相等的。相对六个 boolean 比较运算符 (<, ==, >, >=, !=, <=) 中每一个运算符的各个方法,优先提供此方法。

 参数:val - 将此 BigDecimal 与之比较的 BigDecimal。

 返回:当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。

 /

以上就是关于从Oracle中读取的NUMBER类型一般在java中用什么型全部的内容,包括:从Oracle中读取的NUMBER类型一般在java中用什么型、java中数值类型转换的问题,double类型显示科学计数法了。、java中Double类型格式化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存