无法更改Java中Float的值
好吧,我有这个奇怪的问题。当我尝试更改浮点值时,它不会更改该值。这是我正在试图改变它:(更改的变量,以保持它的简单)无法更改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。你能帮助我吗? 谢谢。
与原有代码:
static float float1ID;
public void void1(){
if(boolean1){
float1 = 56F;
}else if(!boolean1){
float1 = 0F;
}
}
它保持在零,因为你改变float1
,不float1ID
,虽然你现在已经编辑的代码来解决这个问题,所以我会假设它是一个错字。
唯一的另一种可能性是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);
看看有什么出来。
+1最简单的代表点总结了整夜... – Paul 2012-01-27 02:09:57
不,我正在改变布尔值。我已经证实了这一点。 – user1172622 2012-01-27 02:20:16
如果您已验证变量命名不是问题,并且您知道您正在更改boolean1的值,那么您可能会发布更多代码。例如,你可以向我们展示你如何以及在哪里声明boolean1? – XIVSolutions 2012-01-27 02:24:16
boolean1的值是什么?你是怎么称呼void1()的?我们需要更多。 – rfeak 2012-01-27 02:07:53
另外,没有必要做'else if(!boolean1)',只是'else'可以正常工作。 – Divya 2012-01-27 02:08:28
您似乎对我们其他人有不同的“完整代码”的定义:-)(1)什么是“Var”? (2)“钻石”在哪里变化? (3)您用来验证diamonID的代码在哪里没有改变? ... 等等。这个想法是提供一个完整的最小样本来展示这个问题,但是关于你的代码的这种“我的偏见”态度阻碍了我们的帮助。不要抱怨,只是指出如果您只是向我们展示真实代码,速度会更快。 – paxdiablo 2012-01-27 02:35:03