Problème avec les chiffres décimal et round

Petit nouveau ! | 1 Messages

23 avr. 2016, 13:13

Bonjour,

je travail sur un code php pour le paiement automatique en BitCoins mais j'ai un problème quand je met $btc_amount dans ma BDD..

Pour $_POST['amount'] 0.01 et $json->{'last'} = 397.17

1
$btc_amount = round(1/$json->{'last'}*$_POST['amount'], 8, PHP_ROUND_HALF_UP);
PHP me r'envoie "2.518E-5" pour $btc_amount alors que je voudrais qu'il me r'envoie un nombre avec un maximum de 8 décimal soit "0.00002518"

Comment puis-je faire pour obtenir une tel réponse de PHP?

Je vous remercie d'avance cordialement

Eléphant du PHP | 337 Messages

24 avr. 2016, 18:21

C'est une grosse bidouille, mais ça pourrait fonctionner avec ça :

Code : Tout sélectionner

function transforme_nombre($nombre) { // Décomposition du flottant en deux parties $n = explode("E-", $nombre); // Le nombre de décimales à afficher est égal à : // --> la puissance négative // --> + le nombre de caractères de la première partie du nombre // --> -2 (le zéro avant la virgule, et la virgule elle-même) $decimales = $n[1] + intval(strlen($n[0])) - 2; $retour = number_format($nombre, $decimales); return $retour; }