我正在使用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循环函数中获取相同的值?提前谢谢。
答案 0 :(得分:0)
您的SQL查询返回不同的结果,因为第一个向上舍入到第一个小数,第二个回合不是。 Java代码是舍入而不是小数。
您必须决定是否要舍入结果,如果是,则需要多少小数。 Java和SQL都可以实现您的决定。
使用您的代码已经涵盖 SQL未舍入, SQL四舍五入和 Java舍入而不包含小数;这里缺少选项:
没有小数的SQL舍入
select Country, Round(sum(value), 0) as Round_Value
from Database
Java舍入小数