1
Я пытаюсь округлить десятичное число с точностью 2, но он не работает. Дайте мне знать, проблема в моем коде ниже:округлые цифры в apache poi ss workbook
CellStyle cs = wb.createCellStyle();
DataFormat df = wb.createDataFormat();
cs.setDataFormat(df.getFormat("0.0"));
for (int i=14;i<rows;i++)
{
Cell y= wb.getSheetAt(0).getRow(i).getCell((short) colValue);
if (y.getCellType() == Cell.CELL_TYPE_STRING) {
} else if (y.getCellType() == Cell.CELL_TYPE_NUMERIC) {
float d=(float) y.getNumericCellValue();
y.setCellStyle(cs);
}
}
Вы явно не понимаете, с плавающей точкой. Вы не можете округлить числа с плавающей запятой. Единственный способ округления - преобразовать в строку. Однако, если вы преобразуете эту строку обратно в float, это будет неточно снова. –
style.setDataFormat (HSSFDataFormat.getBuiltinFormat ("@")); // значение возвращается как значение String. – swamy