private double rkNumber(byte[] data, int offset) { //see 2.5.122 byte b0 = data[offset]; boolean numDivBy100 = ((b0 & 1) == 1); // else as is boolean floatingPoint = ((b0 >> 1 & 1) == 0); // else signed integer //unset highest 2 bits b0 &= ~1; b0 &= ~(1<<1); rkBuffer[4] = b0; for (int i = 1; i < 4; i++) { rkBuffer[i+4] = data[offset+i]; } double d = 0.0; if (floatingPoint) { d = LittleEndian.getDouble(rkBuffer); } else { int rawInt = LittleEndian.getInt(rkBuffer, 4); d = rawInt >> 2;//divide by 4/shift bits coz 30 bit int, not 32 } d = (numDivBy100) ? d/100 : d; return d; }
private void handleCellReal(byte[] data) { beforeCellValue(data); //xNum double val = LittleEndian.getDouble(data, XSSFBCellHeader.length); handleCellValue(formatVal(val, cellBuffer.getStyleIdx())); }
private void handleFmlaNum(byte[] data) { beforeCellValue(data); //xNum double val = LittleEndian.getDouble(data, XSSFBCellHeader.length); handleCellValue(formatVal(val, cellBuffer.getStyleIdx())); }
@Override public Double getValue() { return LittleEndian.getDouble(data); }
private double rkNumber(byte[] data, int offset) { //see 2.5.122 byte b0 = data[offset]; boolean numDivBy100 = ((b0 & 1) == 1); // else as is boolean floatingPoint = ((b0 >> 1 & 1) == 0); // else signed integer //unset highest 2 bits b0 &= ~1; b0 &= ~(1<<1); rkBuffer[4] = b0; for (int i = 1; i < 4; i++) { rkBuffer[i+4] = data[offset+i]; } double d = 0.0; if (floatingPoint) { d = LittleEndian.getDouble(rkBuffer); } else { int rawInt = LittleEndian.getInt(rkBuffer, 4); d = rawInt >> 2;//divide by 4/shift bits coz 30 bit int, not 32 } d = (numDivBy100) ? d/100 : d; return d; }
private void handleCellReal(byte[] data) { beforeCellValue(data); //xNum double val = LittleEndian.getDouble(data, XSSFBCellHeader.length); handleCellValue(formatVal(val, cellBuffer.getStyleIdx())); }
private void handleFmlaNum(byte[] data) { beforeCellValue(data); //xNum double val = LittleEndian.getDouble(data, XSSFBCellHeader.length); handleCellValue(formatVal(val, cellBuffer.getStyleIdx())); }
case 9: command.value = Double.valueOf( LittleEndian.getDouble(contents, offset) ); break;
case 9: command.value = new Double( LittleEndian.getDouble(contents, offset) ); break;
_value = Double.valueOf( LittleEndian.getDouble( data, offset ) ); return 8;
_value = Double.valueOf( LittleEndian.getDouble( data, offset ) ); return 8;