简体   繁体   中英

how to null a variable of type float

My code is working if my float variable is set to 0, but I want my code to work if my variable is null. How could I do that? Here is a code snippet I wrote:

float oikonomia= (float)((float)new Float(vprosvasis7.getText().toString()));

                         if(oikonomia==0){

I have tied if(oikonomia==null) or if(oikonomia=null) but it is not working.

PS: Another way would be to initially set oikonomia=0; and, if the users change it, go to my if session. This is not working either.

Float oikonomia = Float.valueOf(vprosvasis7.getText().toString());

                     if(oikonomia.toString() == " "){



float oikonomia= (float)((float)new Float(vprosvasis7.getText().toString()));
                  oikonomia=0;
                         if(oikonomia==0){

that way is not working too:

Float oikonomia = Float.valueOf(vprosvasis7.getText().toString());

                         if(oikonomia.toString() == " "){

If you want a nullable float, then try Float instead of float

Float oikonomia= new Float(vprosvasis7.getText().toString());

But it will never be null that way as in your example...

EDIT : Aaaah, I'm starting to understand what your problem is. You really don't know what vprosvasis7 contains, and whether it is correctly initialised as a number. So try this, then:

Float oikonomia = null;

try {
  oikonomia = new Float(vprosvasis7.getText().toString());
} 
catch (Exception ignore) {
  // We're ignoring potential exceptions for the example.
  // Cleaner solutions would treat NumberFormatException
  // and NullPointerExceptions here
}

// This happens when we had an exception before
if (oikonomia == null) {
  // [...]
}

// This happens when the above float was correctly parsed
else {
  // [...]
}

Of course there are lots of ways to simplify the above and write cleaner code. But I think this should about explain how you should correctly and safely parse a String into a float without running into any Exceptions...

Floats and floats are not the same thing. The "float" type in Java is a primitive type that cannot be null.

You should probably be doing something like this

Float oikonomia = Float.valueOf(vprosvasis7.getText().toString());

You're going to get a NumberFormatException if you try to parse a string that doesn't translate into a valid number. So you could simply wrap this statement in a try catch block and handle the error properly.

Hope that helps.

try this:

Float oikonomia = null;
try{
  oikonomia = Float.valueOf(vprosvasis7.getText().toString());
}catch(numberFormatException e){
  // logging goes here
}

Now the value is NULL in case of an illegal (non float) string.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM