Java 编码细节技巧及问题汇总
原创2024/8/21大约 1 分钟
Java 编码细节技巧及问题汇总
1、Java 基础
1.1、DecimalFormat 默认四舍五入机制的坑
在使用 DecimalFormat 和 # 号对数字进行格式化时,默认的不是四舍五入,而是银行家舍入法,在使用 hutool 的 NumberUtil.decimalFormat 方法时尤其要注意!
参考:https://blog.csdn.net/qq_42857603/article/details/129857214
2024-10-9 21:12:08 补充:原来银行家舍入法(四舍六入五成双)才是最科学的数据修约法,比四舍五入更能接近实际值,推荐使用!
2、Apache 通用工具包使用技巧
2.1、将包装类数组转换为原生类型数组
org.apache.commons.lang.ArrayUtils
Integer[] demo = new Integer[1];
int[] demo2 = ArrayUtils.toPrimitive(demo);3、Guava 通用工具包使用技巧
Nothing is here.
4、三方库使用技巧及事项
4.1、使用 poi 读取表格时务必判断单元格类型
/**
* 根据单元格的类型获取对应类型的值
*
* @param cell
* @return
*/
private Object getCellValueByType(Cell cell) {
Object o = null;
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
// 处理时间类型
if (HSSFDateUtil.isCellDateFormatted(cell)) {
double d = cell.getNumericCellValue();
Date date = HSSFDateUtil.getJavaDate(d);
SimpleDateFormat dformat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
o = dformat.format(date);
} else {
o = cell.getNumericCellValue();
}
break;
case HSSFCell.CELL_TYPE_STRING:
o = cell.getStringCellValue();
break;
default:
break;
}
}
return o;
}
