Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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中的舍入方法相当于SQL Server舍入_Java_Sql Server_Rounding - Fatal编程技术网

Java中的舍入方法相当于SQL Server舍入

Java中的舍入方法相当于SQL Server舍入,java,sql-server,rounding,Java,Sql Server,Rounding,我在应用程序计算中使用了BigDecimal变量。在某些情况下,当Bigdecimal值为2.9922并且我将数据保存到SQL Server 2012时,我会得到一条2.99 DB的记录。这种舍入对我来说是可以的,但有时我需要将数据库中的记录与新的计算进行比较,我需要它们采用相同的舍入方法 所以我的问题是,Java中的舍入方法与SQLServer2012舍入方法相同吗 它是BigDecimal.向下取整还是BigDecimal.向上取整,甚至取整半个,还是哪一个?所以基本上你需要处理十进制值的比

我在应用程序计算中使用了
BigDecimal
变量。在某些情况下,当
Bigdecimal
值为2.9922并且我将数据保存到SQL Server 2012时,我会得到一条2.99 DB的记录。这种舍入对我来说是可以的,但有时我需要将数据库中的记录与新的计算进行比较,我需要它们采用相同的舍入方法

所以我的问题是,Java中的舍入方法与SQLServer2012舍入方法相同吗


它是
BigDecimal.向下取整
还是
BigDecimal.向上取整
甚至取整半个
,还是哪一个?

所以基本上你需要处理十进制值的比例。 为此:如果可以更改数据列的十进制小数比例(以db为单位)。 例如:如果列名为-->[value]DECIMAL(15,2)-->则可以使用alter table脚本将其更改为[value]DECIMAL(15,5)

因为BigDecimal.ROUND\u DOWN或BigDecimal.ROUND\u UP满足不同的用例

您可以参考gere,您可以从java控制比例,如这里所述。


谢谢

您是否阅读了每个选项的文档?我不需要更改数据库。我需要更改代码以获得与数据库中相同的舍入值。