Pour Tcl, 08 n'est pas un entier
#1
Eh non : pour Tcl, 08 n'est pas un entier mais ressemble plutôt à une valeur octale mal exprimée.

Démonstration :
tcl
> expr 07 + 1
Tcl: 8
> expr 08 + 1
Tcl error: missing operator at _@_
Tcl error: in expression "0_@_8 + 1";
Tcl error: looks like invalid octal number
> expr int(08)
Tcl error: missing operator at _@_
Tcl error: in expression "int(0_@_8)";
Tcl error: looks like invalid octal number
> format %g 05
Tcl: 5
> format %g 08
Tcl error: expected floating-point number but got "08" (looks like invalid octal number)
> set test 08
 Tcl: 08
> incr test
Tcl error: expected integer but got "08"


Je vais en parler à mon psychiatre, il m'aidera peut-être à exprimer la valeur octale qui est en moi et que je me refuse à admettre...
Répondre Avertir
#2
Tiens, KiBa en a parlé sur le tchat, et voici des solutions:
tcl
set a 08
regsub {^ [0]} $a {\1} a
putlog expr $a - 1



tcl
set a 08
putlog expr $a.0 - 1



Deux petites astuces simples Smile
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté