【发布时间】:2011-07-02 12:48:07
【问题描述】:
我是 Java 新手,我正在使用 Processing 进行一些数据可视化。不过,我的代码中出现了这个奇怪的错误,想知道是否有人可以帮助我。似乎 Xspacing 浮点数一直设置为 Infinity,但是当我打印出设置为正确值的表达式时,它会被打印出来......
float Xspacing = (endX-(width*.04) - startX)/ values;
println((endX-(width*.04) - startX)/ values);
println(Xspacing);
结果是:
49.0
无限
任何帮助将不胜感激!
对不起,我写得很快,省略了一些非常必要的信息:
49.0 是应该的。所有其他类型都是浮点数,除了整数值。 代码可以编译,println 被构建到处理中,这是我正在使用的框架(正确的术语?)。它基本上是一个在处理 GUI 中打印到控制台的功能。
Xspacing 旨在成为我的类“Graph”的数据,但是当我在公共函数“drawBasic”中定义变量时,一切正常。现在我只是好奇....
使用 System.out.println(0 产生相同的结果。初始值或变量是:
float startX = 120.00001
浮动 endX = 740.0
整数值 = 12
width 是一个整数(虽然不是明确的),设置为 800
奇怪的是,在函数定义中这工作正常,只有当我尝试在类中定义它时它才不起作用......
【问题讨论】:
-
尝试放入
double。计算中的任何中间步骤是否会导致非常大的数字? -
那么 49.0 绝对是正确的值?如果您的问题包含 endX、width、startX 和 values 的值,那就太好了,这样人们就可以验证结果。
-
在@antsyawn 的请求中添加它们的确切类型也会有所帮助。
-
@Dan:您能否也将输入值添加到您的公式中?另外,由于
println是非标准的,你可以试试System.out.println版本,看看它在这两种情况下输出什么? -
@Dan:如果代码在公共函数中工作但不在您的类中,您确定没有发生变量阴影之类的事情,或者其他一些线程修改您的输入吗?您可以尝试在计算失败之前立即打印出值吗(如果您还没有)?
标签: java processing