相关疑难解决方法(0)

比较python中的`float`和`float64`

我必须比较两个数字.其中一个来自custt python代码,另一个来自numpy.调试器显示它们具有相同的值'29 .0',但是第一个的float类型和第二个的类型是float64,所以a == b并且a - b == 0False.我怎么处理它?有没有办法强制常规python变量默认float64使用或numpy使用float

更新:最后所有这些值来自29.0写入的同一文件,因此我认为数值不存在差异.

python numpy

6
推荐指数
2
解决办法
1万
查看次数

java程序输出的说明

我遇到了以下程序

class Boolean {  
  public static void main(String argv[]) {  
    boolean x;  
    x = 4.4f == 4.4;  
    System.out.println(x);  
  }  
} 
Run Code Online (Sandbox Code Playgroud)

以下程序的输出是 false

但是,如果我们以下列方式编写程序,那么

class Boolean {  
    public static void main(String argv[]) {  
      boolean x;  
      x = 4.5f == 4.5;  
      System.out.println(x);  
    }  
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下输出是 true

有人可以解释一下为什么吗?

java boolean

5
推荐指数
1
解决办法
1071
查看次数

原语和包装器数据类型的使用有什么不同以及包装器数据类型的需求是什么?

我在网上搜遍了所有的答案,但所有答案都只是差异所在.我知道不同之处,但我不明白他们的应用程序的差异.

例如,假设我们必须采用两个浮点值,如果我们使用double,我们可以很容易地比较使用a==b,而如果我们使用Double,我们将不得不使用a.equals(b).

java primitive wrapper

5
推荐指数
1
解决办法
734
查看次数

从Groovy迁移到Java

在我的grails项目中,我将所有计算都移到java类中.

这是源代码的链接(我已将其保存在Google文档中).

主要目的是将当前时间格式化为字符串(两种语言).例子:

1 day 2 hours 3 seconds
1 ???? 2 ???? 3 ???????
Run Code Online (Sandbox Code Playgroud)

但我有一个方法:

 private static boolean endsWith(final long num, final long part) {
    if (num / 10 < 1) {
      return num == part;
    } else {
      float val1 = (num - part) / 10;
      float val2 = (float) Math.floor(val1);

      return val1 == val2;
    }
  }
Run Code Online (Sandbox Code Playgroud)

它检查'num'是否以'part'结尾.例子:

assert endsWith(128, 1) == false
assert endsWith(1, 1) == true
assert endsWith(34, 4) == true
Run Code Online (Sandbox Code Playgroud)

PS num - …

java grails groovy

4
推荐指数
2
解决办法
512
查看次数

如何检查列表是否包含与某个谓词匹配的元素?

我有一个包含具有 4 个参数(x、y、iD 和 myType)的对象的 ArrayList。我想验证此 ArrayList 中是否存在具有特定坐标的对象,独立于它们的 iD 和 myType 参数。我想使用Arrays.asList(yourArray).contains(yourValue)但它是当对象只有一个参数时。

这是整个代码:

public class MyObject {

  public float x;
  public float y;
  public int iD;
  public String myType;


  public MyObject (float x, float y, int iD, String myType) 
  {
    this.myType = myType;
    this.iD = iD;
    this.x = x;
    this.y = y;
  }
  @Override
    public String toString() {
    return ("[iD="+iD+" x="+x+" y="+y +" type="+myType+"]");
  }
}


ArrayList<MyObject> myArrayList = new ArrayList<MyObject>();

void setup() 
{
  size(100, 60);
  myArrayList.add(new MyObject(3.5, …
Run Code Online (Sandbox Code Playgroud)

java arraylist

4
推荐指数
1
解决办法
4884
查看次数

目标C数学公式失败

诺布在这里想要计算iPhone的复利.

float principal;
float rate;
int compoundPerYear;
int years;
float amount;
Run Code Online (Sandbox Code Playgroud)

公式应为:amount = principal*(1 + rate/compoundPerYear)^(rate*years)

我得到的答案略有错误:

amount = principal*pow((1+(rate/compoundPerYear)), (compoundPerYear*years));
Run Code Online (Sandbox Code Playgroud)

我正在以.1的速率测试它,但调试器报告.100000001.

我做错了吗?我应该使用双打还是特殊课程(例如,NSNumber)?

感谢您的任何其他想法!


经过进一步的研究,似乎NSDecimalNumber类可能正是我所需要的.现在我只需要弄清楚如何使用这个坏男孩.

math double finance objective-c floating-accuracy

2
推荐指数
1
解决办法
1336
查看次数

Java数字格式困境

我遇到了这个代码的问题!我试图在java中运行代码,但答案似乎很奇怪.

float a=0.1F;
float b=0.2F;
if((a+b)==0.3){
System.out.println("True");
}
else{
System.out.println("False");
}
Run Code Online (Sandbox Code Playgroud)

答案是:错误但理论上应该返回True.如果我们使用a和b的值,如0.15和0.15或0.05和0.25,则函数返回True.我很迷惑.我读过像Java/JavaScript这样的语言实现IEEE-754数字格式的地方!如果是这样,那么这种格式是什么以及代码有什么问题?反正有没有改变数字格式?

java

2
推荐指数
1
解决办法
846
查看次数

你如何解决TDD中的无限回归问题?

如果我编写测试代码来测试我的代码,那么测试代码可能有错误,因此需要进行测试,当我的代码更改时,我的测试代码可能需要更改.无限重复广告.

这个问题是如何解决的(在实践中和理论上)?

testing tdd unit-testing

1
推荐指数
1
解决办法
282
查看次数

Java变量随机变化

我正在使用Windows 7上的Eclipse中的粒子引擎,我遇到了一个我从未见过的问题.我的代码中有这个:

float start = startPosition.getY();
p.position.addTo(p.moveVector);

float end = startPosition.getY();
if(start != end){
System.out.println("hit");
}
Run Code Online (Sandbox Code Playgroud)

它经常打印.我这样做的原因是因为startPosition正在改变,它搞砸了我的程序.

我也进入调试器并查看打印机命中时的值,我得到了这个结果,所有变量都在位置和moveVector:1.0E-5我不知道该怎么做.

这是我的代码.

粒子发射器http://tinyurl.com/9ahwodx

粒子http://tinyurl.com/8rw979d

矢量3f http://tinyurl.com/9do6v2k

有问题的代码位于ParticleEmitter的底部.

如果你想看到或知道别的什么让我知道,但我认为这是所有相关的信息.

java opengl lwjgl

1
推荐指数
1
解决办法
291
查看次数

这个符号是什么意思"&="?

function ArithGeo(arr) {
  var diff = arr[1]-arr[0];
  var ratio = arr[1]/arr[0];
  var allRatioAreGood = true;
  var allDiffAreGood = true;
  for(var i = 2;i<arr.length;i++){
  //  console.log(arr[i]-arr[i-1] == diff);
    allRatioAreGood &= (arr[i]/arr[i-1] == ratio);
    allDiffAreGood &= (arr[i]-arr[i-1] == diff);
  }

  // code goes here
  if (allRatioAreGood){
    return "Geometric"
  }else if (allDiffAreGood){
      return "Arithmetic";
    }else {
    return -1
  }

}
console.log(ArithGeo([2, 4, 6, 7 , 8 ,10]));
Run Code Online (Sandbox Code Playgroud)

当我们在for循环中使用它时,'&='是什么意思?它是如何工作的?有人可以解释一下吗?

另外,这两条线是如何工作的?

allRatioAreGood &= (arr[i]/arr[i-1] == ratio);
allDiffAreGood &= (arr[i]-arr[i-1] == diff);  
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

javascript

1
推荐指数
1
解决办法
59
查看次数