2012-01-27 75 views
-1

好吧,我有这个奇怪的问题。当我尝试更改浮点值时,它不会更改该值。这是我正在试图改变它:(更改的变量,以保持它的简单)无法更改Java中Float的值

static float float1ID; 
public void void1() { 
    if(boolean1) { 
     float1ID = 56F; 
    } else if(!boolean1) { 
     float1ID = 0F; 
    } 
} 

全码:

static boolean diamond = false; 
static boolean iron = false; 
static boolean fuel = false; 
static boolean gold = false; 
static boolean redstone = false; 
static boolean circuit = false; 
static boolean danger = false; 
static boolean valuable = false; 
static boolean nether = false; 
static boolean farm = false; 
static boolean home = false; 
static boolean dungeon = false; 

static float diamondID; 



public void BlockList(){ 
    if(diamond){ 
     diamondID = 56F; 
    }else{ 
     diamondID = 0F; 
    } 



} 

它只是停留在0。你能帮助我吗? 谢谢。

+0

boolean1的值是什么?你是怎么称呼void1()的?我们需要更多。 – rfeak 2012-01-27 02:07:53

+0

另外,没有必要做'else if(!boolean1)',只是'else'可以正常工作。 – Divya 2012-01-27 02:08:28

+0

您似乎对我们其他人有不同的“完整代码”的定义:-)(1)什么是“Var”? (2)“钻石”在哪里变化? (3)您用来验证diamonID​​的代码在哪里没有改变? ... 等等。这个想法是提供一个完整的最小样本来展示这个问题,但是关于你的代码的这种“我的偏见”态度阻碍了我们的帮助。不要抱怨,只是指出如果您只是向我们展示真实代码,速度会更快。 – paxdiablo 2012-01-27 02:35:03

回答

6

与原有代码:

static float float1ID; 
public void void1(){ 
    if(boolean1){ 
     float1 = 56F; 
    }else if(!boolean1){ 
     float1 = 0F; 
    } 
} 

它保持在零,因为你改变float1float1ID,虽然你现在已经编辑的代码来解决这个问题,所以我会假设它是一个错字。


唯一的另一种可能性是boolean1总是错误的。否则值更改。

另外:

if (boolean1) { 
    float1ID = 56F; 
} else if (!boolean1) { 
    float1ID = 0F; 
} 

似乎有点怪异。除非你对我有不同的“布尔/二进制”含义,否则if (!boolean1)是完全没有必要的。你可以使用:

if (boolean1){ 
    float1ID = 56F; 
} else { 
    float1ID = 0F; 
} 

而且,由于你在你确定你改变布尔评论状态,你需要调试的代码。暂时将其更改为:

System.out.println ("DEBUG A, boolean is " + boolean1 + 
    ", float is " + float1ID); 
if (boolean1){ 
    System.out.println ("DEBUG B1"); 
    float1ID = 56F; 
} else { 
    System.out.println ("DEBUG B2"); 
    float1ID = 0F; 
} 
System.out.println ("DEBUG C, boolean is " + boolean1 + 
    ", float is " + float1ID); 

看看有什么出来。

+0

+1最简单的代表点总结了整夜... – Paul 2012-01-27 02:09:57

+0

不,我正在改变布尔值。我已经证实了这一点。 – user1172622 2012-01-27 02:20:16

+0

如果您已验证变量命名不是问题,并且您知道您正在更改boolean1的值,那么您可能会发布更多代码。例如,你可以向我们展示你如何以及在哪里声明boolean1? – XIVSolutions 2012-01-27 02:24:16