private static DecimalFormat decimalFormat = new DecimalFormat("0.0000000000");
public static void main(String[] args) {
String str ="73.71" ;
BigDecimal decimal= new BigDecimal(str);
System.out.println("Tesing1 " + decimal.floatValue()/10000);
System.out.println("Tesing2 " + decimal.floatValue());
BigDecimal bigDecimal = new BigDecimal(decimalFormat.format(decimal.doubleValue()/ 10000));
System.out.println("Tesing3 " + bigDecimal);
}
В вышеприведенном коде вывод:
Тестирование1 0,007371 Тестирование2 73,71 Тестирование3 0,0073710000
Но когда я пытаюсь сохранить его в базе данных, используя hibernate, его значение становится равным 74. Выполнение округлениязаглушка.
Кто-нибудь знает, что является причиной.
Используя этот код, я сохраняю объект
public boolean save(Object transInstance) {
boolean lSuccess = false;
getHibernateTemplate().save(transInstance);
lSuccess = true;
return lSuccess;
}
, и это запись файла .hbm для этого столбца иопределение столбца в таблице
<property name="actlRsltPt" type="big_decimal">
<column name="ACTL_RSLT_PT" precision="6" scale="4" />
</property>
ACTL_RSLT_PT NUMBER (6,4)