数据库中的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类型格式化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)