Не могу изменить значение Float в Java - PullRequest
0 голосов
/ 27 января 2012

Хорошо, у меня странная проблема. Когда я пытаюсь изменить значение с плавающей точкой, оно не изменит значение. Вот как я пытаюсь это изменить:

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. Не могли бы вы мне помочь? Спасибо.

1 Ответ

6 голосов
/ 27 января 2012

С вашим исходным кодом:

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

Он остается на нуле, потому что вы меняете float1, , а не float1ID, хотя вы сейчас отредактировали код, чтобы исправить это, поэтому я буду считать, что это опечатка. 1008 *


Единственная другая возможность состоит в том, что 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);

и посмотри, что получится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...