J'ai fait un script qui doit me permettre de savoir si un nombre possède 2
ou plus de décimal.
Le problème est que cela ne fonctionne pas sur certains nombres.
Par exemple, il fonctionne bien pour 27,90 mais pas pour 19,90...
Si qqn a une solution ou un autre script tout pret, je suis preneur.
Voici le script et les sorties générées:
<?php
function arrondi($nombre)
{
echo '<br>arrondi '.round($nombre*pow(10, 2));
echo '<br>puiss '.$nombre*pow(10, 2);
if ( round($nombre*pow(10, 2)) == $nombre*pow(10, 2) )
return true;
else
return false;
}
$nombre = 19.90;
if (arrondi($nombre))
echo '<br>'.$nombre.' arrondi et puiss égaux';
else
echo '<br>'.$nombre." arrondi et puiss différents";
$nombre = 27.9;
if (arrondi($nombre))
echo '<br>'.$nombre.' arrondi et puiss égaux';
else
echo '<br>'.$nombre." arrondi et puiss différents";
$nombre = 19.901;
if (arrondi($nombre))
echo '<br>'.$nombre.' arrondi et puiss égaux';
else
echo '<br>'.$nombre." arrondi et puiss différents";
?>
arrondi 1990
puiss 1990
19.9 arrondi et puiss différents //<-pb d'après le script, on a donc : 1990
différent de 1990 !!!!!!!!!!!!!!!!!!!
arrondi 2790
puiss 2790
27.9 arrondi et puiss égaux
arrondi 1990
puiss 1990.1
19.901 arrondi et puiss différents
if ( round($nombre*pow(10, 2)) == $nombre*pow(10, 2) )
Ca ne serait pas plutot ca le test que tu veux faire ? if ( round($nombre, 2)*pow(10, 2) == $nombre*pow(10, 2) ) ^^^^^^^^^^^^^^^^
-- Dom
Serge
Le 27 Aug 2003 09:43:30 GMT, "S. Pau" a
Bonjour,
J'ai fait un script qui doit me permettre de savoir si un nombre possède 2 ou plus de décimal. Le problème est que cela ne fonctionne pas sur certains nombres. Par exemple, il fonctionne bien pour 27,90 mais pas pour 19,90... Si qqn a une solution ou un autre script tout pret, je suis preneur.
Voici le script et les sorties générées: <?php function arrondi($nombre) { echo '<br>arrondi '.round($nombre*pow(10, 2)); echo '<br>puiss '.$nombre*pow(10, 2); if ( round($nombre*pow(10, 2)) == $nombre*pow(10, 2) ) ...
As-tu essayé floor à la place de round ? (Floor -- Arrondi à l'entier inférieur)
- Serge -
Le 27 Aug 2003 09:43:30 GMT, "S. Pau" <pau.stephane@libertysurf.fr> a
Bonjour,
J'ai fait un script qui doit me permettre de savoir si un nombre possède 2
ou plus de décimal.
Le problème est que cela ne fonctionne pas sur certains nombres.
Par exemple, il fonctionne bien pour 27,90 mais pas pour 19,90...
Si qqn a une solution ou un autre script tout pret, je suis preneur.
Voici le script et les sorties générées:
<?php
function arrondi($nombre)
{
echo '<br>arrondi '.round($nombre*pow(10, 2));
echo '<br>puiss '.$nombre*pow(10, 2);
if ( round($nombre*pow(10, 2)) == $nombre*pow(10, 2) )
...
As-tu essayé floor à la place de round ?
(Floor -- Arrondi à l'entier inférieur)
J'ai fait un script qui doit me permettre de savoir si un nombre possède 2 ou plus de décimal. Le problème est que cela ne fonctionne pas sur certains nombres. Par exemple, il fonctionne bien pour 27,90 mais pas pour 19,90... Si qqn a une solution ou un autre script tout pret, je suis preneur.
Voici le script et les sorties générées: <?php function arrondi($nombre) { echo '<br>arrondi '.round($nombre*pow(10, 2)); echo '<br>puiss '.$nombre*pow(10, 2); if ( round($nombre*pow(10, 2)) == $nombre*pow(10, 2) ) ...
As-tu essayé floor à la place de round ? (Floor -- Arrondi à l'entier inférieur)
- Serge -
dominique
dominique wrote:
Ca ne serait pas plutot ca le test que tu veux faire ? if ( round($nombre, 2)*pow(10, 2) == $nombre*pow(10, 2) )
en fait je pense que tu peux meme faire : if (round($nombre, 2) == $nombre) -- Dom
dominique wrote:
Ca ne serait pas plutot ca le test que tu veux faire ?
if ( round($nombre, 2)*pow(10, 2) == $nombre*pow(10, 2) )
en fait je pense que tu peux meme faire :
if (round($nombre, 2) == $nombre)
--
Dom