Bonjour,
Ma question est : comment reconnaitre un nombre pair d'un nombre impair en RUBY ?
Je sais utiliser modulo mais après je ne sais pas reconnaitre s'il y a des chiffres après la virgule ?
Merci pour votre aide.
Aurore
Bonjour,
Ma question est : comment reconnaitre un nombre pair d'un nombre impair en RUBY ?
Je sais utiliser modulo mais après je ne sais pas reconnaitre s'il y a des chiffres après la virgule ?
Merci pour votre aide.
Aurore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 a = 12 => 12 a.class => Fixnum b = 1.25687 => 1.25687 b.class => Float![]()
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
et sinon, tu peux tester aussi si ton_nombre == ton_nombre.to_i, des fois que tu aies des 2.0 en valeur![]()
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if toto%2==0 puts "tot est pair" else puts "toto est impair" end
perdu, seul un nombre entier peut être pair / impair
wikipea a dit :
donc 2.125 % 2 => 0.125 n'est pas impairEn mathématiques, tout entier, naturel ou relatif est soit pair soit impair.
* S'il est multiple de deux, c'est un nombre pair. Par exemple, les nombres : -4, 8, et 70, sont pairs. Le nombre zéro est pair, parce qu'il est égal à 2 multiplié par 0.
* Sinon, le nombre est impair. Par exemple -5, 3, et 71 sont impairs. Le nombre un est impair, c'est le plus petit entier naturel impair.![]()
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
Grâce à vous, j'ai pu trouver ma solution :
Elle vous parait correcte ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mavar = mavar/2 if mavar != mavar.truncate![]()
j'aurai plutot vu un truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 if ma_var == ma_var.to_i if (ma_var % 2) == 0 puts "pair" else puts "impair" end else puts "Merci de saisir un nombre entier" end
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
Ha ! Hé oui ! (la prochaine fois je lirais mieux la questionEnvoyé par titoumimi
)
Bon histoire d'avoir l'air moins bête, j'aurais été surpris que Ruby n'ait pas "even?" et "odd?" en stock (mais ça ne marche que sur les fixnum !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if ma_var==ma_var.to_i || ma_var.to_i.even? ...
Salut,
Ce n'est pas le casEnvoyé par Renaud°
:
En revanche ActiveSupport dans Rails rajoute effectivement even? et odd? pour les Fixnum et Bignum :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 taum@amy:~$ irb irb(main):001:0> 1.even? NoMethodError: undefined method `even?' for 1:Fixnum from (irb):1
Rails rajoute pas mal de méthodes dans ce genre sur les classes de base de Ruby (Array, Hash, Time, etc.).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 taum@amy:~/rails$ script/console Loading development environment. >> 1.even? => false
Cela dit même si on n'utilise pas Rails, rien n'empêche de rajouter les méthodes soi-même, c'est pas si compliqué![]()
Plutôt que de copier du code de Rails, tu peux inclure le gem de Ruby Facets.
autre solution (plus simple) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 case ma_var % 2 when 0 :pair when 1 :impair else :non_entier end
Partager