Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conversion string->decimal

40 réponses
Avatar
Olivier Berquin
Bonjour tout le monde,

C'est ma première intervention ici.
J'ai recherché dans les anciens messages et n'ait pas trouvé de
solution...

J'ai un formulaire dans lequel l'utilisateur doit encoder un montant
(decimal).
Mon input est au format texte.
Comment puis-je être certain d'avoir un type decimal?

j'ai fait ceci, mais ça me paraît un peu tiré par les cheveux:
$val1 = $montant + 0.001;
$val2 = $val1 - 0.001;
if ($val2 == 0)
{
// Ce n'est pas un nombre...
}

Merci.

Oli.

10 réponses

1 2 3 4
Avatar
Guillaume
Les chinois utilisent parfois des séparateurs tous les 4 chiffres (ça
doit être vrai car je l'ai lu sur internet).


Les japonais aussi. Techniquement, ce n'est pas non plus un "léger"
argument je pense :)

--
Guillaume

Avatar
Olivier Berquin
Par ailleurs, le Révéré SI (Système International d'unité) précise
que le séparateur des milliers Ne Doit Pas Être un . ou une ,
Mais Seulement Un Espace
(voirhttp://www.bipm.org/utils/common/pdf/si_brochure_8_fr.pdfpage 48)


Très intéressant comme lien, si ce n'est qu'il n'y est pas question de
séparateur de milliers, mais bien de séparateur décimal.
Et Olivier Miakinen chipote sur les mots... mais il a (presque)
entièrement raison.
Il faut utiliser une espace fine insécable pour séparer les milliers
(et je sais de quoi je parle, pour une fois: je suis metteur en page).

Oli.

Avatar
P'tit Marcel
(voirhttp://www.bipm.org/utils/common/pdf/si_brochure_8_fr.pdfpage 48)


Très intéressant comme lien, si ce n'est qu'il n'y est pas question de
séparateur de milliers, mais bien de séparateur décimal.


Ben si :

"D'après la 9e Conférence générale (1948, Résolution 7) et la 22e
Conférence générale (2003, Résolution 10), les nombres comportant un
grand nombre de chiffres peuvent être partagés en tranches de trois
chiffres, séparées par un espace, afin de faciliter la lecture. Ces
tranches ne sont jamais séparées par des points, ni par des virgules.
Cependant, lorsqu'il n'y a que quatre chiffres avant ou après le
séparateur décimal, il est d'usage de ne pas isoler un chiffre par un
espace. L'habitude de grouper ainsi les chiffres est question de choix
personnel ; elle n'est pas toujours suivie dans certains domaines
spécialisés tels que le dessin industriel, les documents financiers et
les scripts qui doivent être lus par ordinateur."

Au passage, le document parle aussi "d'UN espace" donc je ne suis pas
seul à faire l'erreur :-)


--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/


Avatar
Olivier Miakinen

Il faut utiliser une espace fine insécable pour séparer les milliers
(et je sais de quoi je parle, pour une fois: je suis metteur en page).


Tu as raison, j'ai omis de préciser « fine » parce que nous discutons
dans un groupe où l'immense majorité des réponses concerne l'affichage
par un outil commun tel qu'un navigateur web sur un ordinateur person-
nel, or jusqu'à présent le support de l'espace fine dans ce genre d'en-
vironnement est quasi inexistant.

Au fait, je sais aussi (un peu) de quoi je parle car je me suis docu-
menté avant de commettre ceci :
http://www.miakinen.net/vrac/nombres#chiffres

Cette page est d'ailleurs en cours de réécriture, principalement au
sujet des rectifications de 1990. Mais si quelqu'un a des informations
à propos d'une éventuelle séparation en chinois ou en japonais des
chiffres *arabes* par groupes de quatre, cela m'intéresse aussi.

Avatar
Guillaume
Cette page est d'ailleurs en cours de réécriture, principalement au
sujet des rectifications de 1990. Mais si quelqu'un a des informations
à propos d'une éventuelle séparation en chinois ou en japonais des
chiffres *arabes* par groupes de quatre, cela m'intéresse aussi.


Pour le japonais, les groupements se font simplement par 4 zéros

1 = ichi
10 = ju
100 = hyaku
1000 = sen
1 0000 = ichi man

10 0000 = ju man
100 0000 = hyaky man
...
1 0000 0000 = ichi oku
1 0000 0000 0000 = (ic)choo

2 5236 = ni man go sen ni hyaku san ju roku
(2: ni, 3: san, 5: go, 6: roku)

A ton service.

--
Guillaume

Avatar
Olivier Berquin
Très intéressant comme lien, si ce n'est qu'il n'y est pas question de
séparateur de milliers, mais bien de séparateur décimal.


Ben si :

"D'après la 9e Conférence générale (1948, Résolution 7) et la 22e [...]


Je n'avais lu que les titres... Pardon.


Au passage, le document parle aussi "d'UN espace" donc je ne suis pas
seul à faire l'erreur :-)


Je sais... il faut travailler dans la typographie pour "savoir" qu'il
y a une différence entre ces deux espaces.
Et même les gens du métier font l'erreur...


J'en profite pour réitérer mes remerciements. Vos conseils sont
précieux. Merci à tous, encore et encore.

Oli.


Avatar
Olivier Miakinen

Cette page est d'ailleurs en cours de réécriture, principalement au
sujet des rectifications de 1990. Mais si quelqu'un a des informations
à propos d'une éventuelle séparation en chinois ou en japonais des
chiffres *arabes* par groupes de quatre, cela m'intéresse aussi.


Pour le japonais, les groupements se font simplement par 4 zéros


Par quatre zéros *quand ils l'écrivent en chiffres arabes* ?

1 = ichi
10 = ju
100 = hyaku
1000 = sen
1 0000 = ichi man

10 0000 = ju man
100 0000 = hyaky man
...
1 0000 0000 = ichi oku
1 0000 0000 0000 = (ic)choo

2 5236 = ni man go sen ni hyaku san ju roku
(2: ni, 3: san, 5: go, 6: roku)


Je viens de trouver une page disant explicitement l'inverse :
http://en.wikipedia.org/wiki/Japanese_numerals#Large_numbers
<cit.>
However, numbers written in Arabic numerals are separated by commas
every three digits following Western convention.
</cit.>
(le caractère séparateur étant une virgule dans les exemples donnés).

Alors, qui a raison ? Et où faire suivre la discussion pour qu'elle soit
en charte ?


Avatar
Matthieu Moy
Guillaume writes:

Cette page est d'ailleurs en cours de réécriture, principalement au
sujet des rectifications de 1990. Mais si quelqu'un a des informations
à propos d'une éventuelle séparation en chinois ou en japonais des
chiffres *arabes* par groupes de quatre, cela m'intéresse aussi.


Pour le japonais, les groupements se font simplement par 4 zéros


Y'a aussi la version indienne, où on sépare les trois derniers, et les
autres par paquets de 2 :

100
1 000
10 000
1 00 000 (alias "one lack")
10 00 000
1 00 00 000 (alias "one crore")

--
Matthieu


Avatar
Guillaume
Par quatre zéros *quand ils l'écrivent en chiffres arabes* ?
[...]

Je viens de trouver une page disant explicitement l'inverse :
Alors au temps pour moi, je ne pense pas avoir raison vis à vis de

l'écriture arabe, je n'ai songé qu'au système de comptage "standard"
(oral donc).

--
Guillaume

Avatar
BertrandB

[...] C'était juste pour dire d'éviter le slash, car ça donne rapidement
des expressions indigestes.


Eh bien je ne suis *vraiment* pas d'accord avec ça.

Personnellement j'utilise toujours le slash quand il n'y a pas de slash
dans l'expression, car c'est le caractère le plus fréquemment employé à
cet usage, par exemple dans sed, vi ou JavaScript, et c'est pour cette
raison le plus lisible.

Bien sûr, quand il y a ne serait-ce qu'un slash dans l'expression, alors
je n'utilise jamais le slash comme délimiteur, et je choisis parmi la
centaine de caractères autorisés¹ celui qui me paraît le plus pertinent.
Cela peut-être '|' ou '`' s'ils ne sont pas utilisés, mais cela pourrait
tout aussi bien être ':' ou '='. Par ailleurs, je ne l'ai encore jamais
fait, mais je pourrais bien utiliser l'une des paires (), {}, [], et <>,
autorisées depuis PHP 4.0.4.



je vais abonder en corrigeant ... lorsque le / me semble alourdir
j'utilise le ? qui dans certaines version d'ed (notamment sous GCOS6) à
un sens (/ match l'expression suivante ? match l'expression précédente)


1 2 3 4