如何在java Math.Round和SQL Round函数之间获得相同的值?

时间:2017-04-05 09:14:33

标签: java sql rounding sybase

我正在使用Sybase数据库。在我尝试使用SQL Round函数进行Round之前,但是有些数据不匹配问题我需要构建一个返回Round值数据库输出的java函数。

SQL查询: -

With Round :- select Country,Round(ISNULL(sum(value),0),1) as Round_Value from Database ## Result :- 15012.8

Without Round :- select Country,sum(value) as Without_Round from Database ## Result :- 15012.82906

现在,当我尝试使用java函数舍入数据库值(无圆值),然后得到以下结果...

Java: -

  public static void main(String []args)  
    {
         double value=15012.82906;
         System.out.println("Test Value:"+ Math.round(value));##Result :- 15013

    }

有没有办法从SQL数据库和Java循环函数中获取相同的值?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的SQL查询返回不同的结果,因为第一个向上舍入到第一个小数,第二个回合不是。 Java代码是舍入而不是小数。

您必须决定是否要舍入结果,如果是,则需要多少小数。 Java和SQL都可以实现您的决定。

使用您的代码已经涵盖 SQL未舍入 SQL四舍五入 Java舍入而不包含小数;这里缺少选项:

没有小数的SQL舍入

select Country, Round(sum(value), 0) as Round_Value
from   Database

Java舍入小数

This SO answer