添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

java 读取excel后 手机后存入数据库后变成了1.3522336622E10

37浏览 · 2024-09-30 11:02:22
当你在Java中使用库(如Apache POI或JExcelApi)从Excel文件读取数据并尝试将其存储到数据库的数值字段时,可能会遇到精度丢失的问题。特别是当读取的是科学计数法表示的大数字时,例如1.3522336622E10,它实际上是一个非常大的数(1.3522336622乘以10的10次方)。然而,数据库的某些字段可能无法精确地表示这种大浮点数,可能导致截断或四舍五入。 在这种情况下,你应该考虑将Excel中的数值转换成适合数据库的数据类型,比如使用`DECIMAL`、`NUMERIC`或`BIGINT`等高精度类型,或者直接存储为字符串(String)形式。如果你确信需要保留原始的精度,可以先将读取的数值转为字符串再保存: ```java import org.apache.poi.ss.usermodel.RichTextString; RichTextString cellValue = sheet.getRow(i).getCell(j).getRichStringCellValue(); String excelNumber = cellValue.getString().replaceAll("\\D", ""); // Remove any non-digit characters double doubleValue = Double.parseDouble(excelNumber); // Convert to double // Now, store the doubleValue as a BigDecimal or in String format to avoid precision loss BigDecimal bigDecimal = new BigDecimal(doubleValue); yourDatabaseObject.setYourField(bigDecimal.toString());