La Validation des entiers non négatifs et les valeurs décimales

Mes champs sont:
tax rate et tax amount dans laquelle je veux valider des valeurs positives.

J'ai écrit cette validation:

:format => { :with => /\A[+]?\d+\Z/}

Mais il n'est pas en prenant des nombres avec une virgule comme 4.67.
Et c'est en me jetant une erreur.
Ce type de validation de travail sur les nombres entiers et les nombres à virgule?
par exemple: 2, 57, 54.56 devrait passer mais -2.56, -87 doit échouer.