1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) INRIA -
5 * Copyright (C) 2016 - Samuel GOUGEON
6 * Copyright (C) 2012 - 2016 - Scilab Enterprises
8 * This file is hereby licensed under the terms of the GNU GPL v2.0,
9 * pursuant to article 5.3.4 of the CeCILL v.2.1.
10 * This file was originally licensed under the terms of the CeCILL v2.1,
11 * and continues to be available under such terms.
12 * For more information, see the COPYING file which you should have received
13 * along with this program.
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
18 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19 xmlns:scilab="http://www.scilab.org" xml:id="strtod" xml:lang="fr">
21 <refname>strtod</refname>
22 <refpurpose>convertit chaque nombre décimal littéral (chaine de caractères) en sa valeur numérique</refpurpose>
25 <title>Syntaxe</title>
27 d = strtod(str [,decimalseparator])
28 [d, tails] = strtod(str [,decimalseparator])
31 <refsection role="arguments">
32 <title>Arguments</title>
38 chaine de caractères, ou vecteur ou matrice de chaines de caractères.
43 <term>decimalseparator</term>
46 caractère "." (par défaut) ou "," : séparateur décimal reconnu
54 scalaire, vecteur ou matrice de nombres décimaux.
62 matrice de chaines de caractères identique à celle de
63 <varname>str</varname> : <literal>tails(i)</literal> est
64 la fin (éventuelle) de <literal>str(i)</literal> non prise
65 en compte pour établir <literal>d(i)</literal>, ou "" par
72 <refsection role="description">
73 <title>Description</title>
75 <code>[d, tails] = strtod(str)</code> interprète chaque élément de
76 <varname>str</varname> et tente de reconnaître un nombre décimal :
78 <listitem>Si elle y parvient, au moins pour la partie initiale de
79 <varname>str(i)</varname>, la valeur numérique décimale
80 correspondante est enregistrée dans <varname>d(i)</varname>.
81 Si d'autres caractères suivent la partie initiale interprétée
82 de <varname>str(i)</varname>, ils sont alors ignorés et
83 sont indiqués dans <varname>tails(i)</varname> ; sinon,
84 <varname>tails(i)</varname> retourne "".
87 Si aucun nombre décimal n'est reconnu, <varname>d(i)</varname>
88 retourne <literal>%nan</literal>, et <varname>tails(i)</varname>
89 retourne <varname>str(i)</varname>.
96 Nombres complexes : <function>strtod(..)</function> reconnaît
97 et retourne uniquement leur partie réelle (pour peu qu'elle
98 soit écrite avant la partie imaginaire). Les symboles "i" ou
99 "j" ne sont pas reconnus.
102 <function>strtod(..)</function> ne reconnaît aucun séparateur
103 de milliers ou de millièmes, ni " ", ni "," ni aucun autre.
106 Seuls les nombres représentés en base 10 sont recherchés par
107 <function>strtod(..)</function>. Les nombres représentés
108 en binaire, octal, hexadécimal ou autre base de numération
109 ne sont pas reconnus.
112 <function>strtod(..)</function> ne reconnaît le nom d'aucune
113 variable numérique prédéfinie de Scilab ou de l'utilisateur,
114 ni aucune représentation de <literal>%inf</literal>.
116 <programlisting role="example"><![CDATA[
117 s = ["-0.034" "- 0.034" "+1234.5678" "1234 5678"
118 "-.764" "+.432" "12,231.7" "-5.458,871"
119 "1e43" "-3.5d-12" "-1.2+i" "i+1.2"
120 "" "%inf" "Inf" "-Inf"
121 "%i" "%pi" "%e" "%eps"
122 "%F" "0x19B" "#14C4" "o5745"
125 ]]> </programlisting>
126 <screen><![CDATA[ s =
127 !-0.034 - 0.034 +1234.5678 1234 5678 !
128 !-.764 +.432 12,231.7 -5.458,871 !
129 !1e43 -3.5d-12 -1.2+i i+1.2 !
132 !%F 0x19B #14C4 o5745 !
136 -0.034 Nan 1234.5678 1234.
137 -0.764 0.432 12. -5.458
138 1.000D+43 -3.500D-12 -1.2 Nan
145 <function>strtod(..)</function> n'interprète aucun caractère
146 spécial protégé tel que <literal>"\n"</literal> ou
147 <literal>"\t"</literal>, etc.
150 Cette fonction est basée sur sa version existante en langage C,
151 laquelle se comporte différemment sous Windows et sous Linux :
152 Sous Windows, les caractères "d" ou "D" peuvent indifféremment
153 être utilisés pour les exposants.
159 <refsection role="examples">
160 <title>Exemples</title>
161 <programlisting role="example"><![CDATA[
162 s = ["123.556 abc " ".543" "#58B" "0x73 " "%inf"
163 "-1.47e-71" "67,432.57" " 23,5" "-,57" "Inf" ]
164 [num, trail] = strtod(s);
167 // Avec "," comme séparateur décimal :
168 [num, trail] = strtod(s, ",");
172 <refsection role="see also">
173 <title>Voir aussi</title>
174 <simplelist type="inline">
176 <link linkend="evstr">evstr</link>
179 <link linkend="isnum">isnum</link>
182 <link linkend="isdigit">isdigit</link>
185 <link linkend="bin2dec">bin2dec</link>
188 <link linkend="oct2dec">oct2dec</link>
191 <link linkend="hex2dec">hex2dec</link>
195 <refsection role="history">
196 <title>Historique</title>
199 <revnumber>5.5.0</revnumber>
201 Introduction de l'option "decimalseparator" (SEP 97).
205 <revnumber>5.4.1</revnumber>
207 Si <varname>str(i)</varname> ne représente aucune valeur numérique,
208 <varname>d(i)</varname> vaut désormais <literal>Nan</literal>
209 au lieu de <literal>0</literal>.