BigDecimal zero = BigDecimal.ZERO;
时间: 2024-04-30 15:16:01 浏览: 289
BigDecimal.ZERO是Java中BigDecimal类的一个静态常量,它表示一个值为0的BigDecimal对象。BigDecimal是用于高精度计算的类,可以处理任意精度的十进制数。
使用BigDecimal.ZERO可以方便地创建一个值为0的BigDecimal对象,而不需要手动指定0作为参数。这个常量是不可变的,可以在各种数学运算中使用。
相关问题
double zero = 0.00;BigDecimal b = BigDecimal.valueod(zero).setScale(2);和BigDecimal.ZERO的区别
在Java中,BigDecimal是用于精确计算的类。BigDecimal.ZERO是一个已经被初始化为0的BigDecimal对象。而在这个代码中,double zero = 0.00; 是一个基本数据类型的0.00, BigDecimal b = BigDecimal.valueOf(zero).setScale(2); 是将这个基本数据类型的0.00转换成BigDecimal类型,并设置其小数点后保留两位小数。
因此,BigDecimal.ZERO是一个已经被初始化的BigDecimal对象,而BigDecimal.valueOf(zero).setScale(2)则是将一个基本数据类型的0.00转换成BigDecimal对象,并设置其小数点后保留两位小数。
String sql2 = “SELECT as, bs, cs, ds, es, qs FROM b_table”; PreparedStatement stmt2 = conn.prepareStatement(sql2); ResultSet rs2 = stmt2.executeQuery(); BigDecimal as_current = BigDecimal.ZERO; BigDecimal bs_current = BigDecimal.ZERO; BigDecimal cs_current = BigDecimal.ZERO; BigDecimal ds_current = BigDecimal.ZERO; BigDecimal es_current = BigDecimal.ZERO; BigDecimal qs_current = BigDecimal.ZERO; if (rs2.next()) { as_current = rs2.getBigDecimal(“as”); bs_current = rs2.getBigDecimal(“bs”); cs_current = rs2.getBigDecimal(“cs”); ds_current = rs2.getBigDecimal(“ds”); es_current = rs2.getBigDecimal(“es”); qs_current = rs2.getBigDecimal(“qs”); } rs2.close(); stmt2.close();b表里的数据是小数,请问这段代码查出来为什么是null,已知字段类型是varchar,指出原因并改正
这段代码查询出来的结果为null是因为查询出来的数据类型是小数类型,而变量的初始值是字符串类型的,无法将小数类型赋值给字符串类型的变量。要改正这个问题,需要将变量的类型从字符串类型改为BigDecimal类型,代码如下所示:
```
String sql2 = “SELECT as, bs, cs, ds, es, qs FROM b_table”;
PreparedStatement stmt2 = conn.prepareStatement(sql2);
ResultSet rs2 = stmt2.executeQuery();
BigDecimal as_current = BigDecimal.ZERO;
BigDecimal bs_current = BigDecimal.ZERO;
BigDecimal cs_current = BigDecimal.ZERO;
BigDecimal ds_current = BigDecimal.ZERO;
BigDecimal es_current = BigDecimal.ZERO;
BigDecimal qs_current = BigDecimal.ZERO;
if (rs2.next()) {
as_current = rs2.getBigDecimal(“as”);
bs_current = rs2.getBigDecimal(“bs”);
cs_current = rs2.getBigDecimal(“cs”);
ds_current = rs2.getBigDecimal(“ds”);
es_current = rs2.getBigDecimal(“es”);
qs_current = rs2.getBigDecimal(“qs”);
}
rs2.close();
stmt2.close();
```
注意,需要将变量的初始值设置为BigDecimal类型的0,而不是字符串类型的0。
阅读全文
相关推荐













