public static boolean CreateExcel()
{
String FileName;
FileName = "";
FileOutputStream fileOut = null;
try
{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
wb.setSheetName(0,"测试",HSSFWorkbook.ENCODING_UTF_16); HSSFRow row0 = sheet.createRow(0);
HSSFRow row1 = sheet.createRow(1);
String strf = "1.01";
float f = Float.valueOf(strf).floatValue();
HSSFCell cell = row0.createCell((short)0);
cell.setCellValue( strf); //这个是字符的1.01,导出后每次都得手工改成数字型
cell = row1.createCell((short)0);
cell.setCellValue( f); //单元格里看到的是1.01,但实际值却是1.00999999046325 ,数据多时,恐有误差。
String filepath = "c:\\poi.xls";
fileOut = new FileOutputStream(filepath);
wb.write(fileOut);
fileOut.flush();
fileOut.close();
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
finally
{
try
{
fileOut.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
return true;
}
解决方案 »
- 从数据库中读取数据后的显示问题
- javax.servlet.ServletException: Could not resolve view with name 'Success' in se
- 麻烦高手指点一下,是关于webservice的
- 获取服务器数据更新问题
- 数据库中字段找不到 怎么办?
- 关于sun.net.smtp.SmtpClient得问题,知道得请进啊
- 在linux下部署过JSP程序得高手进来看看
- 问个菜鸟问题,我E文不好,谁能告诉我到哪下载JSP语法卡片吗?
- SSH框架
- 如何poi输出excel转为file
- 请教Spring MVC与表单日期提交的问题
- 求指导!在一个JSP页面中同时打开多个动态JSP页面的问题
像楼上说的推荐用BigDecimal,float有误差。
嫌麻烦的话直接用字符串!
用BigDecimal。
换成如下形式:
BigDecimal f = BigDecimal(strf);
cell.setCellValue(1.01); //正常float f = 1.01;
cell.setCellValue( f); //有误差double d = 1.01;
cell.setCellValue(d);//正常--------------于是将上面的两行代码 String strf = "1.01";
float f = Float.valueOf(strf).floatValue(); 改成如下:
String strf = "1.01";
double d = Double.valueOf(strf).doubleValue()
就正常了,不是太明白为什么会这样
跟朋友交流了下
得出的结论float f = 0.5 这个是没问题也就是那些恰好是2的负几次方累计的数均可以0.5 0.75 0.875 ----------------结帖