Python convert float string to int

First, why do you want to convert the float string to an integer? Do you want to treat 4.7 as meaning the user has guessed 4? Or 5? Or a legal but automatically-invalid guess? Or as actually the value 4.7 [in which case you don't want integers at all]? Or…?

Second, the way you're approaching this is wrong. userGuess.isalpha[] only tells you that the guess is made entirely of letters. That means you're still going to treat, say, "Hello!" as a number, because it has at least one non-letter.

If you want to know if a string is a valid integer, just call int on it, and use a try/except to handle the case where it isn't:

def validateInput[]:
    while True:
        global userGuess
        userGuess = input["Please enter a number from 1 to 100. "]
        try:
            userGuess = int[userGuess]
            print[type[userGuess], "after int succeeeded"]
            break
        except ValueError:
            print["Please enter whole numbers only, no words."]
            print[type[userGuess], "after int failed"]
    return userGuess

If you want to handle actual words differently from other kinds of failure, e.g., so you can print a more specific error message, then you can check isalpha inside the except clause.

If you want to handle check whether it's a float so you can give a different error, do the same thing—try to call float[userGuess]—inside the except clause. Or, if you want to truncate floats, change that int[userGuess] to int[float[userGuess]].

You may also want some other checks even inside the try part. For example, what if they type -23 or 178? Those are integers, but they're not numbers between 1 and 100.

Obviously, the more validation you want, the more code it takes, because each test is another line of code. So, you may want to consider moving the validation out to a separate function from the looping over input, to make it more readable.

Converting a float value to an int is done by Type conversion, which is an explicit method of converting an operand to a specific type. However, it is to be noted that such type of conversion may tend to be a lossy one [loss of data]. Converting an int value like 2 to floating-point will result in 2.0, such types of conversion are safe as there would be no loss of data, but converting 3.4 to an int value will result in 3 leading to a lossy conversion. 
Examples: 

Input:  3.3 
Output: 3 

Input:  5.99
Output: 5

Method 1: Conversion using int[]:

To convert a float value to int we make use of the built-in int[] function, this function trims the values after the decimal point and returns only the integer/whole number part.

Syntax: int[x] 

Return: integer value

Example 1: Number of type float is converted to a result of type int.

Python3

num = 9.3

print['type:',

      type[num].__name__] 

num = int[num]  

print['converted value:', num,

      ', type:', type[num].__name__]

Output

type: float
converted value: 9 , type: int

Example 2: In most cases the int[] function rounds off the result to an integer lesser than or equal to the input, but the behavior is neither definite nor predictable. One such example is shown below.

Python3

num1 = 5.9

num2 = 5.99999999999999999999

num1 = int[num1]

num2 = int[num2]

print[num1, num2, sep = '\n']

Method 2: Conversion using math.floor[] and math.ceil[].

A float value can be converted to an int value no larger than the input by using the math.floor[] function, whereas it can also be converted to an int value which is the smallest integer greater than the input using math.ceil[] function. The math module is to be imported in order to use these methods.

Syntax: math.floor[x]

Parameter:

x: This is a numeric expression.

Returns: largest integer not greater than x.

Syntax: math.ceil[x]

Parameter:

x: This is a numeric expression.

Returns: Smallest integer not less than x.

Example : In the below example conversion from float to int has been achieved using the floor[] and ceil[] methods, the former returns an int no larger than the input and the latter returns the smallest integer larger than the input.

Python3

import math      

num = 5.6

floor_value = math.floor[num]

ceil_value  = math.ceil[num]

print["the result using floor[] : ",

      floor_value ,

      ', type : ',type[floor_value].__name__]

print["the result using ceil[]  : ",

      ceil_value,

      ', type: ', type[ceil_value].__name__]

Output

the result using floor[] :  5 , type :  int
the result using ceil[]  :  6 , type:  int

Method#3: Conversion using round[ ].

A float value can be converted to an int value which is closet integer value if does not pass second parameter. In case of equal difference it goes toward larger integer.

Syntax: round[x]

Parameter:

x: This is a numeric expression.

Returns: integer multiple of closest.

Example : In the below example conversion from float to int has been achieved using the round[] methods, the former returns an int number which is closest to number.

Python3

num = 5.6

print[ 'Type : ', type[num].__name__]

print[ "Original number is : ", num]

value = round[num]

print[ 'Type : ',type[value].__name__]

print["the result using round  : ",value]

Output

Type :  float
Original number is :  5.6
Type :  int
the result using round  :  6

Method#4: Conversion using math.trunc[ ].

A float value can be converted to an int value. In case of negative number it behaves like ceiling function of math library and in case of positive number it behaves like floor function..

Syntax: math.trunc[x]

Parameter:

x: This is a numeric expression.

Returns: larger integer in case of negative number else in case of positive number smaller number.

Example : In the below example conversion from float to int has been achieved using the math.trunc[] methods, the former returns an larger int number which in case of negative number, else in case of positive number return smaller integer number.

Python3

import math

num = 5.6

num2 = -2.6

value = math.trunc[num2]

print[ 'Type of value : ',type[value].__name__]

print["the result using round  : ",value]

data = math.trunc[num]

print[ 'Type of data: ',type[data].__name__]

print["the result using round  : ",data]

Output

Type of value :  int
the result using round  :  -2
Type of data:  int
the result using round  :  5


How do you convert a string to an integer or a float in Python?

We can convert a string to float in Python using the float[] function. This is a built-in function used to convert an object to a floating point number. Internally, the float[] function calls specified object __float__[] function.

Can you convert a float to an int?

Since a float is bigger than int, you can convert a float to an int by simply down-casting it e.g. [int] 4.0f will give you integer 4. By the way, you must remember that typecasting just get rid of anything after the decimal point, they don't perform any rounding or flooring operation on the value.

Can I convert a string to int Python?

To convert, or cast, a string to an integer in Python, you use the int[] built-in function. The function takes in as a parameter the initial string you want to convert, and returns the integer equivalent of the value you passed.

How do I turn a string into an int?

parseInt[] to convert a string to an integer..
Use Integer. parseInt[] to Convert a String to an Integer. This method returns the string as a primitive type int. ... .
Use Integer. valueOf[] to Convert a String to an Integer. This method returns the string as an integer object..

Chủ Đề