6
votes

Comment valider le nombre de décimales pour une valeur numérique?

J'ai ma validation dans la moelle comme suit: xxx

mais cela ne suffit pas car l'utilisateur peut saisir une valeur de "42.22222222121212121212 ..." qui n'est pas prévu. Donc, comment valider l'entrée pour avoir uniquement deux décimales comme 42,22


0 commentaires

5 Réponses :


0
votes

Pourquoi ne pas masser l'entrée après l'avoir reçu? Vous devriez l'arrondir à deux décimales vous-même à mon avis et ne laissez pas l'utilisateur à s'inquiéter de cela.

rails propose rond_with_precision alors appelez-le (2) sur Votre flotteur arrondirait à 2 décimales.


0 commentaires

0
votes

La classe Sprintf Ruby offre la possibilité de spécifier le nombre de décimales à afficher. Pour par exemple. Dans un exemple ci-dessous, je reçois la notation moyenne d'une piste et que la moyenne est arrondie à 1 décimale.

sprintf("%.1f",track.ratings.average('rating'))


0 commentaires

7
votes

Vous pouvez essayer ceci:

validates_format_of :shoe_size, :with => /^\d+\.*\d{0,2}$/


0 commentaires

3
votes

@Warren répondez mais sortez le * et mettre un? Parce que tu pouvais faire 3 ..... 0 mais avec? Vous pouvez avoir zéro ou un.

    :with => /^\d+\.?\d{0,2}$/


0 commentaires

2
votes

Construire la réponse de @ Bitterzoet, mais en faisant toujours une validation (via Le Valider méthode ): xxx


0 commentaires