##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
## Fonctions de base: gestion des valeurs numériques
##@cooked nocomments
uprovide base.num

function isnum() {
# retourner vrai si $1 est une valeur numérique entière (positive ou négative)
    [ ${#1} -gt 0 ] || return 1
    local v="$1"
    v="${v#-}"
    v="${v//[0-9]/}"
    [ -z "$v" ]
}
function ispnum() {
# retourner vrai si $1 est une valeur numérique entière positive
    [ ${#1} -gt 0  ] || return 1
    local v="$1"
    v="${v//[0-9]/}"
    [ -z "$v" ]
}
function isrnum() {
# retourner vrai si $1 est une valeur numérique réelle (positive ou négative)
# le séparateur décimal peut être . ou ,
    [ ${#1} -gt 0 ] || return 1
    local v="$1"
    v="${v#-}"
    v="${v//./}"
    v="${v//,/}"
    v="${v//[0-9]/}"
    [ -z "$v" ]
}
