无序逻辑回归结果出现e

无序逻辑回归结果出现e,第1张

数据库里面查出来的数据返回给前端的时候,发现了一个问题,返回的数据中带有e。

这条结果的sql中用sum函数做了一个求和的运算,

虽然sum函数返回的类型是double的,但是和E也没有什么关系吧,最后的解决办法。

new DecimalFormat(“0”).format(hlw)

格式化以后回归正常。

下面是使用Java实现的,将Excel数据表中的数据导入到数据库里里面。

1

public class ReadExcel {

/**

* 对外提供读取excel 的方法

* */

public static List<List<Object>>readExcel(File file) throws IOException {

String fileName = file.getName()

String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName

.substring(fileName.lastIndexOf(".") + 1)

if ("xls".equals(extension)) {

return read2003Excel(file)

} else if ("xlsx".equals(extension)) {

return read2007Excel(file)

} else {

throw new IOException("不支持的文件类型")

}

}

/**

* 读取 office 2003 excel

*

* @throws IOException

* @throws FileNotFoundException

*/

private static List<List<Object>>read2003Excel(File file)

throws IOException {

List<List<Object>>list = new LinkedList<List<Object>>()

HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file))

HSSFSheet sheet = hwb.getSheetAt(0)

Object value = null

HSSFRow row = null

HSSFCell cell = null

int counter = 0

for (int i = sheet.getFirstRowNum()counter <sheet

.getPhysicalNumberOfRows()i++) {

row = sheet.getRow(i)

if (row == null) {

continue

} else {

counter++

}

List<Object>linked = new LinkedList<Object>()

for (int j = row.getFirstCellNum()j <= row.getLastCellNum()j++) {

cell = row.getCell(j)

if (cell == null) {

continue

}

DecimalFormat df = new DecimalFormat("0")// 格式化 number String

// 字符

SimpleDateFormat sdf = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss")// 格式化日期字符串

DecimalFormat nf = new DecimalFormat("0.00")// 格式化数字

switch (cell.getCellType()) {

case XSSFCell.CELL_TYPE_STRING:

// System.out.println(i + "行" + j + " 列 is String type")

value = cell.getStringCellValue()

break

case XSSFCell.CELL_TYPE_NUMERIC:

/*System.out.println(i + "行" + j

+ " 列 is Number type DateFormt:"

+ cell.getCellStyle().getDataFormatString())*/

if ("@".equals(cell.getCellStyle().getDataFormatString())) {

value = df.format(cell.getNumericCellValue())

} else if ("General".equals(cell.getCellStyle()

.getDataFormatString())) {

value = nf.format(cell.getNumericCellValue())

} else {

value = sdf.format(HSSFDateUtil.getJavaDate(cell

.getNumericCellValue()))

}

break

case XSSFCell.CELL_TYPE_BOOLEAN:

// System.out.println(i + "行" + j + " 列 is Boolean type")

value = cell.getBooleanCellValue()

break

case XSSFCell.CELL_TYPE_BLANK:

// System.out.println(i + "行" + j + " 列 is Blank type")

value = ""

break

default:

// System.out.println(i + "行" + j + " 列 is default type")

value = cell.toString()

}

if (value == null || "".equals(value)) {

continue

}

linked.add(value)

}

list.add(linked)

}

return list

}

/**

* 读取Office 2007 excel

* */

private static List<List<Object>>read2007Excel(File file)

throws IOException {

List<List<Object>>list = new LinkedList<List<Object>>()

// 构造 XSSFWorkbook 对象,strPath 传入文件路径

XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file))

// 读取第一章表格内容

XSSFSheet sheet = xwb.getSheetAt(0)

Object value = null

XSSFRow row = null

XSSFCell cell = null

int counter = 0

for (int i = sheet.getFirstRowNum()counter <sheet

.getPhysicalNumberOfRows()i++) {

row = sheet.getRow(i)

if (row == null) {

continue

} else {

counter++

}

List<Object>linked = new LinkedList<Object>()

for (int j = row.getFirstCellNum()j <= row.getLastCellNum()j++) {

cell = row.getCell(j)

if (cell == null) {

continue

}

DecimalFormat df = new DecimalFormat("0")// 格式化 number String

// 字符

SimpleDateFormat sdf = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss")// 格式化日期字符串

DecimalFormat nf = new DecimalFormat("0.00")// 格式化数字

switch (cell.getCellType()) {

case XSSFCell.CELL_TYPE_STRING:

System.out.println(i + "行" + j + " 列 is String type")

value = cell.getStringCellValue()

break

case XSSFCell.CELL_TYPE_NUMERIC:

/* System.out.println(i + "行" + j

+ " 列 is Number type DateFormt:"

+ cell.getCellStyle().getDataFormatString())*/

if ("@".equals(cell.getCellStyle().getDataFormatString())) {

value = df.format(cell.getNumericCellValue())

} else if ("General".equals(cell.getCellStyle()

.getDataFormatString())) {

value = nf.format(cell.getNumericCellValue())

} else {

value = sdf.format(HSSFDateUtil.getJavaDate(cell

.getNumericCellValue()))

}

break

case XSSFCell.CELL_TYPE_BOOLEAN:

// System.out.println(i + "行" + j + " 列 is Boolean type")

value = cell.getBooleanCellValue()

break

case XSSFCell.CELL_TYPE_BLANK:

// System.out.println(i + "行" + j + " 列 is Blank type")

value = ""

break

default:

// System.out.println(i + "行" + j + " 列 is default type")

value = cell.toString()

}

if (value == null || "".equals(value)) {

continue

}

linked.add(value)

}

list.add(linked)

}

return list

}

public static void main(String[] args) {

try {

readExcel(new File("D:\\Java\\apache-tomcat-8.0.26\\webapps\\poi\\docs\\testRead.xls"))

// readExcel(new File("D:\\test.xls"))

/*

String docsPath = request.getSession(true).getServletContext()

.getRealPath("docs")

String fileName = "testRead.xls"

String filePath = docsPath

if (EPlatform.Windows.equals(OSinfo.getOSname())) {

filePath = filePath + "\\" + fileName

} else {

filePath = filePath + "/" + fileName

}

filePath = "E:\\testRead.xls"

List<List<Object>>list = readExcel(new File(filePath))

request.setAttribute("list", list)

RequestDispatcher dispatcher = request

.getRequestDispatcher("/read.jsp")

dispatcher.forward(request, response)

*/

} catch (IOException e) {

e.printStackTrace()

}

}

}

java里面有的…… DecimalFormat

字符含义

0

一位数字,这一位缺失显示为0。用来补零

#

一位数字, 这一位缺失就不显示

.

小数点,不用多说了吧

千位分隔符

E

科学计数法

%

百分比

比如你要的就是#.00 你搜下DecimalFormat 吧。我搞c的……前阵正好项目中java的同事碰到这个


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9930402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存