problème fonction round()

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 juin 2011, 14:08

il faut voir ce que tu entend par précis, car tu demande un arrondis a 10-3 et l'erreur et 2 10-16 donc bon je suis pas certain que ça joue beaucoup sur le calcul étant donné que, par l'arrondis, tu introduit une erreur à 10-3 qui sera plus significative par la suite que celle à 10-16 ;)).

ceci dit j'ai testé
<?php
$x = round(5.04589,3);
var_dump($x);
?>
<?php echo round(5.04589,3); ?>
est le résultat est
float 5.046
5.046
avec une version 5.3.5 de php pour windows (faudrais que je test avec ma vm nux tiens).

après faut voir l'incidence de l'arrondis sur le résultat final du calcul ;) (dernier arrondis compris).

je pense qu'a final number format sera la solution, car la pour le coup tu ne maitrise pas la chose, a moins de faire ton propre "round" ;)

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

16 juin 2011, 14:25

Bonjour,
J'ai besoin de précision pour mes calcules car se sont des données météo...
Il y a des règles à appliquer pour les calculs scientifiques et pour maitriser les approximations. C'est tellement chiant que j'ai séché les cours et sous-traité les TP, mais j'ai retenu que c'était particulier.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 juin 2011, 15:18

Bonjour,

Il y a des règles à appliquer pour les calculs scientifiques et pour maitriser les approximations. C'est tellement chiant que j'ai séché les cours et sous-traité les TP, mais j'ai retenu que c'était particulier.

Haaaannnn :mrgreen:
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 juin 2011, 17:22

A vérifier quand même, dans ton php.ini tu as une directive "precision" qui permet de spécifier le nombre de chiffres significatifs dans la gestion des nombres décimaux.. à priori celle-ci devrait être à 14 par défaut...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...