Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate将标量添加到Hibernate.FLOAT四舍五入_Java_Mysql_Hibernate_Floating Point - Fatal编程技术网

Java Hibernate将标量添加到Hibernate.FLOAT四舍五入

Java Hibernate将标量添加到Hibernate.FLOAT四舍五入,java,mysql,hibernate,floating-point,Java,Mysql,Hibernate,Floating Point,对于执行查询时的上述代码,数据库中的值66996956返回为6.6996956E7 即使是双倍,输出也为6.6996956E7。但当提供math.BIG_DECIMAL时,该值是正确的。为什么double和float中存在问题。在代码中,我可以引入bigdecimal,因为其余数据都是浮点数。66996956和6.6996956E7是相同的值,显示方式不同。请参阅以了解其显示方式的原因: 如果m小于10^3或大于或等于10^7,则为 以所谓的“计算机化科学符号”表示 如果您不介意浮点和doubl

对于执行查询时的上述代码,数据库中的值66996956返回为6.6996956E7


即使是双倍,输出也为6.6996956E7。但当提供math.BIG_DECIMAL时,该值是正确的。为什么double和float中存在问题。在代码中,我可以引入bigdecimal,因为其余数据都是浮点数。

66996956和6.6996956E7是相同的值,显示方式不同。请参阅以了解其显示方式的原因:

如果m小于10^3或大于或等于10^7,则为 以所谓的“计算机化科学符号”表示


如果您不介意浮点和double必然具有的精度损失(对于较大的值甚至更高),那么请使用它们。如果你想要一个绝对精确的值,那么就使用bigdecime。

可以理解两者都是相同的值,需要知道如何在UI上以正常格式显示
Query qry = session.createSQLQuery(qrystr)
.addScalar("id", Hibernate.INTEGER)
.addScalar("balance",Hibernate.FLOAT);

    Object[] headerDetails=(Object[])qry.uniqueResult();
    session.close();
    System.out.println("balance"+headerDetails[1]);