Je suis un débutant MATLAB. Voici le problème:MATLAB - question d'étage
>> a = floor(7/2.5)
a =
2.00
>> b = rem(7,2.5)
b =
2.00
>> c = floor(b/2)
c =
0
c devrait être 1, non? Pourquoi est-ce 0 ???
Il est différent lorsque b = 2 est entré directement comme suit:
>> b = 2
b =
2.00
>> c = floor(b/2)
c =
1.00
Merci beaucoup. J'ai converti le résultat de la fonction rem en single. Ensuite, au moins mon problème a été résolu. –
convertit le résultat de rem en int. Il sera toujours (tout comme floor, ceil et round sont toujours des nombres entiers) – KitsuneYMG
Attention avec la terminologie "convert to integer": round ne convertit pas en un entier, mais renvoie plutôt la valeur entière la plus proche, toujours en double. C'est généralement ce que vous voulez. Les types d'entiers Matlab réels comme int32 ont une priorité plus élevée que le double, et entraîneront toutes les opérations suivantes sur eux avec l'arithmétique entière. –