草庐IT

double-dispatch

全部标签

java - Java 中用于零的等于运算符(BigDecimal/Double)

关于0和0.0上的等于运算符的一些有趣观察newDouble(0.0).equals(0)返回false,而newDouble(0.0).equals(0.0)返回true。BigDecimal.ZERO.equals(BigDecimal.valueOf(0.0))返回false,而BigDecimal.ZERO.equals(BigDecimal.valueOf(0))返回真。看起来在这两种情况下都在进行字符串比较。任何人都可以对此有所了解。谢谢。 最佳答案 BigDecimal'equals'比较值和比例。如果您只想比较值(0

java - Java 中用于零的等于运算符(BigDecimal/Double)

关于0和0.0上的等于运算符的一些有趣观察newDouble(0.0).equals(0)返回false,而newDouble(0.0).equals(0.0)返回true。BigDecimal.ZERO.equals(BigDecimal.valueOf(0.0))返回false,而BigDecimal.ZERO.equals(BigDecimal.valueOf(0))返回真。看起来在这两种情况下都在进行字符串比较。任何人都可以对此有所了解。谢谢。 最佳答案 BigDecimal'equals'比较值和比例。如果您只想比较值(0

java - 如何检查 double 是否为空?

我正在查询一个数据库,我得到的一些结果是空的。我将这些值设置为数据类型为double的变量。我们称变量为“结果”。所以我尝试设置一个if语句来查看它等于Null,这当然不起作用。这是我为该if语句提供的代码:if(results==null){results=0;}我使用此代码得到的错误是:Theoperator==isundefinedfortheargumenttype(s)double,null有没有更好的方法来判断它是否为空? 最佳答案 首先,Javadouble不能是Javanull,也不能与null进行比较。(doubl

java - 如何检查 double 是否为空?

我正在查询一个数据库,我得到的一些结果是空的。我将这些值设置为数据类型为double的变量。我们称变量为“结果”。所以我尝试设置一个if语句来查看它等于Null,这当然不起作用。这是我为该if语句提供的代码:if(results==null){results=0;}我使用此代码得到的错误是:Theoperator==isundefinedfortheargumenttype(s)double,null有没有更好的方法来判断它是否为空? 最佳答案 首先,Javadouble不能是Javanull,也不能与null进行比较。(doubl

java - 什么是计算所有值的总和超过 double 限制的平均值的好解决方案?

我需要计算一组非常大的double的平均值(10^9个值)。值的总和超过了double的上限,那么有谁知道计算平均值的任何巧妙的小技巧,而不需要计算总和?我使用的是Java1.5。 最佳答案 您可以calculatethemeaniteratively.该算法简单、快速,每个值只需处理一次,变量永远不会大于集合中的最大值,因此不会溢出。doublemean(double[]ary){doubleavg=0;intt=1;for(doublex:ary){avg+=(x-avg)/t;++t;}returnavg;}在循环内avg始终

java - 什么是计算所有值的总和超过 double 限制的平均值的好解决方案?

我需要计算一组非常大的double的平均值(10^9个值)。值的总和超过了double的上限,那么有谁知道计算平均值的任何巧妙的小技巧,而不需要计算总和?我使用的是Java1.5。 最佳答案 您可以calculatethemeaniteratively.该算法简单、快速,每个值只需处理一次,变量永远不会大于集合中的最大值,因此不会溢出。doublemean(double[]ary){doubleavg=0;intt=1;for(doublex:ary){avg+=(x-avg)/t;++t;}returnavg;}在循环内avg始终

java - 如何从 Java 中的 'double' 类型的值中删除十进制值

我正在调用一个名为“calculateStampDuty”的方法,它将返回属性(property)须缴付的印花税金额。百分比计算有效很好,并返回正确的值“15000.0”。但是,我想将值显示为前端用户只是“15000”,所以只想删除小数点和任何前面的值此后。如何才能做到这一点?我的代码如下:floatHouseValue=150000;doublepercentageValue;percentageValue=calculateStampDuty(10,HouseValue);privatedoublecalculateStampDuty(intPercentageIn,doubleH

java - 如何从 Java 中的 'double' 类型的值中删除十进制值

我正在调用一个名为“calculateStampDuty”的方法,它将返回属性(property)须缴付的印花税金额。百分比计算有效很好,并返回正确的值“15000.0”。但是,我想将值显示为前端用户只是“15000”,所以只想删除小数点和任何前面的值此后。如何才能做到这一点?我的代码如下:floatHouseValue=150000;doublepercentageValue;percentageValue=calculateStampDuty(10,HouseValue);privatedoublecalculateStampDuty(intPercentageIn,doubleH

java - double 型比较器

我写了以下代码:publicclassNewClass2implementsComparator{publicintcompare(Pointp1,Pointp2){return(int)(p1.getY()-p2.getY());}}如果我假设有两个双数,3.2-3.1,那么差值应该是0.1。但是,当我将数字转换为int时,差异最终为0,这是不正确的。因此我需要compare()来返回一个double值,而不是一个整数值。问题是,我的getX字段是double的。我该如何解决这个问题? 最佳答案 我建议你使用内置方法Double.

java - double 型比较器

我写了以下代码:publicclassNewClass2implementsComparator{publicintcompare(Pointp1,Pointp2){return(int)(p1.getY()-p2.getY());}}如果我假设有两个双数,3.2-3.1,那么差值应该是0.1。但是,当我将数字转换为int时,差异最终为0,这是不正确的。因此我需要compare()来返回一个double值,而不是一个整数值。问题是,我的getX字段是double的。我该如何解决这个问题? 最佳答案 我建议你使用内置方法Double.