how can I convert a decimal to an integer?

 Réponse acceptée

Oleg Komarov
Oleg Komarov le 26 Juin 2011
  • fix to strip all the decimals
  • round can change the integer part
fix (1.9) % 1
round(1.9) % 2

Plus de réponses (3)

Szymon Buchaniec
Szymon Buchaniec le 14 Mai 2020
Modifié(e) : Szymon Buchaniec le 14 Mai 2020

6 votes

All the proposed answers:
  • round(x) - round to the closest integer to x
  • floor(x) - round to the nearest integer less or equal to x
  • ceil(x) - round to the nearest integer greater than or equal to x
  • fix(x) - round to the nearest integer towards 0 (floor(x) for x >=0 and ceil(x) for x<=0)
does not convert the number, but only rounds it. Type of the number is still the same. To convert a decimal (double) number to an integer, one needs to use Conversion Functions. Rounding is automatic, but can be chosen explicitly. Examples:
  • uint16(1.8) -> 2
  • int32(floor(1.8)) -> 1
Willem Dorff
Willem Dorff le 19 Fév 2020

0 votes

floor() to round down to nearest integer
ceil() to round up to nearest integer

Catégories

En savoir plus sur Elementary Math dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by