DEV Community

HHMathewChan
HHMathewChan

Posted on

4 2

Python syntax learning 1: Convert float to int

Inspired from yesterday exercise , I search for is there any other way to convert a object from float to integer?
The following is my findings:
and small conclusion at the end

There are four syntax available:

  1. int()
  2. math.trunc()
  3. math.floor()
  4. math.celi()

Method 1. int()

Syntax:

int(x)
Enter fullscreen mode Exit fullscreen mode

Parameter:

x can be a string or number
but only one.
example 1
The string can only be an integer number

str1 = "5" 
int(str1)
Enter fullscreen mode Exit fullscreen mode

example 2
If the parameter is not a string, it can have decimal point

str2 = 5.12  
int(str2)
Enter fullscreen mode Exit fullscreen mode

The following code will cause error:

str1 = "5,6" # more than one number in a string
str2 = "4.8" # the number in string must in integer
int(str1)
int(str2)
Enter fullscreen mode Exit fullscreen mode

What object will int()be return?

an int object will be returned
which cut off all the number after decimal place
example 1.

str1 = "5"
int(str1)
Enter fullscreen mode Exit fullscreen mode

will have an output
5
example 2

str2 = 5.12
int(str2)
Enter fullscreen mode Exit fullscreen mode

will have an output
5


Method 2. math.trunc()

  • need to import math module before use ### Syntax
import math

math.trunc(x)
Enter fullscreen mode Exit fullscreen mode

Parameter

  • math.trunc()only takes number as parameter e.g.
math.trunc(5.123)
Enter fullscreen mode Exit fullscreen mode

What object will math.trunc() return?

  • an integer will returned
  • which will cut off all the fractional part after decimal place
  • same as int()

example

import math

num2 = 5
int2 = math.trunc(num2)
print(int2)
Enter fullscreen mode Exit fullscreen mode

will have an output
5


Method 3. math.floor()

  • need to import math module before use ### Syntax
import math

math.floor(x)
Enter fullscreen mode Exit fullscreen mode

Parameter

math.floor() can only take number as parameter

What object will math.floor() return?

an integer will returned.
The number will be round down

  • that is the largest integer less than or equal to x

example

import math

num2 = 5.9
int2 = math.floor(num2)
print(int2)

num3 = 5.1
int3 = math.floor(num3)
print(int3)
Enter fullscreen mode Exit fullscreen mode

both num2 and num3 will have an output

5

Method 4. math.ceil()

  • need to import math before use
import math

math.celi(x)
Enter fullscreen mode Exit fullscreen mode

Parameter

math.celi() can only take number as parameter

What object will math.floor() return?

an integer will returned.
The number will be round up.

  • that is the smallest integer greater than or equal to x

example

import math

num2 = 5.9
int2 = math.floor(num2)
print(int2)

num3 = 5.1
int3 = math.floor(num3)
print(int3)
Enter fullscreen mode Exit fullscreen mode

both num2 and num3 will have an output
6

Conclusion

  • int() is the most flexible way to convert float object to integer, but will suffer from data lose, same as meth.trunc().
  • math.floor() and math.celi() can minimize data lose in the conversion if use properly.

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay