Java新手不会做简单的数学运算,运算符错误

标签 java math compiler-errors

尝试在这里做一些非常基础的数学运算,但我对 Java 的缺乏理解给我带来了一些问题。


double[][] handProbability = new double[][] {{0,0,0},{0,0,0},{0,0,0}};
double[] handProbabilityTotal = new double[] {0,0,0};
double positivePot = 0;
double negativePot = 0;
int localAhead = 0;
int localTied = 1;
int localBehind = 2;
//do some stuff that adds values to handProbability and handProbabilityTotal<p></p>

<p>positivePot = 
   (handProbability[localBehind][localAhead] + 
   (handProbability[localBehind][localTied] / 2.0) + 
   (handProbability[localTied][localAhead] / 2.0) ) / 
   (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0));</p>

<p>negativePot = 
    (handProbability[localAhead][localBehind] + 
       (handProbability[localAhead][localTied] / 2.0) + 
          (handProbability[localTied][localBehind] / 2.0) ) / 
    (handProbabilityTotal[localAhead] + (handProbabilityTotal[localTied] / 2.0));
</p>

最后两行给我带来了问题(很抱歉它们太长了)。 编译器错误:


src/MyPokerClient/MyPokerClient.java:180: operator / cannot be applied to double[],double
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );
                                                                                                                                                                                                                                             ^
src/MyPokerClient/MyPokerClient.java:180: operator + cannot be applied to double,
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );
                                                                                                                                                                                                 ^
src/MyPokerClient/MyPokerClient.java:180: operator / cannot be applied to double,
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );

不太确定是什么问题。基础数学应该不需要什么特别的东西,对吧?

最佳答案

最后一行之前的一行有问题。

positivePot = 
   (handProbability[localBehind][localAhead] + 
   (handProbability[localBehind][localTied] / 2.0) + 
   (handProbability[localTied][localAhead] / 2.0) ) / 
   (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0));

handProbability 是一个二维 double 组。所以 handProbability[localTied] 是一个 double 组。它不是双重值(value)。根据你的最后一行,我认为它应该是 handProbabilityTotal[localTied]。

关于Java新手不会做简单的数学运算,运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824636/

相关文章:

Java,从 github 源动态加载类

java - 服务器端 Java 应用程序代码无法编译 - 为什么?

Javascript 乘法不正确,导致舍入不正确

java - 无法静态引用非静态方法

ubuntu - 在 Ubuntu 上安装 ACE 的问题

java - 无法解析的日期 : "1/29/2014 11:45:00 AM" - Android

java - java中泛型类中的double方法

math - 使用整数除法时,用 "a/(b*c)"替换 "a/b/c"是否安全?

javascript - 使用 Javascript 获取 2 个数字之间的随机数,但不太可能具有特定范围

c++ - 为什么 "std::string(blablabla());"编译没有错误?