tutorial - telecharger php




Flotteur PHP avec 2 décimales:.00 (7)

0.00 est réellement 0. Si vous avez besoin de 0.00 lorsque vous faites écho, utilisez simplement number_format cette façon:

number_format($number, 2);

Quand je fais cette conversion:

(float) '0.00';

J'ai 0 . Comment obtenir 0.00 et avoir toujours le type de données en tant que float?


Autant que je sache, PHP ne dispose d'aucune solution pour résoudre ce problème. Toutes les autres réponses (ci-dessus et ci-dessous) données dans ce fil sont absurdes.

La fonction number_format retourne une chaîne comme résultat, écrit dans la propre spécification de PHP.net.

Des fonctions comme floatval / doubleval renvoient des entiers si vous donnez comme valeur 3.00.

Si vous tapez le conjugaison, vous obtiendrez un entier comme résultat.

Si vous utilisez round (), vous obtiendrez un entier comme résultat.

La seule solution possible à laquelle je puisse penser consiste à utiliser votre base de données pour la conversion de type en float. MySQL par exemple:

SELECT CAST('3.00' AS DECIMAL) AS realFloatValue;

Exécutez cette opération en utilisant une couche d’abstraction qui renvoie des flottants au lieu de chaînes et le tour est joué.


Modification de la sortie JSON

Si vous cherchez une solution pour que votre sortie JSON contienne 2 décimales, vous pouvez probablement utiliser le post-formatage comme dans le code ci-dessous:

// PHP AJAX Controller

// some code here

// transform to json and then convert string to float with 2 decimals
$output = array('x' => 'y', 'price' => '0.00');
$json = json_encode($output);
$json = str_replace('"price":"'.$output['price'].'"', '"price":'.$output['price'].'', $json);

// output to browser / client
print $json;
exit();

Retour au client / navigateur:

{"x":"y","price":0.00}

Vous n'avez pas 0 ou 0.00 : ce sont différentes représentations du format binaire interne ( en.wikipedia.org/wiki/IEEE_floating_point ).

Si vous voulez exprimer votre float sous la forme "0.00", vous devez le formater dans une chaîne, en utilisant number_format :

$numberAsString = number_format($numberAsFloat, 2);

Vous pouvez afficher des nombres flottants

  • avec un certain nombre de décimales
  • avec un certain format (localisé)

c'est à dire

$myNonFormatedFloat = 5678.9

$myGermanNumber = number_format($myNonFormatedFloat, 2, ',', '.'); // -> 5.678,90

$myAngloSaxonianNumber = number_format($myNonFormatedFloat, 2, '.', ','); // -> 5,678.90 

Notez que le

Le premier argument est le nombre flottant que vous souhaitez formater

2ème argument est le nombre de décimales

Le 3ème argument est le caractère utilisé pour séparer visuellement les nombres décimaux.

Le 4ème argument est le caractère utilisé pour séparer visuellement des milliers


Vous pouvez utiliser cette fonction simple

number_format($amount, 2, '.', '');

Notation anglaise sans séparateur de milliers.

voir number_format


Vous pouvez utiliser cette fonction simple. Format de nombre ()

    $num = 2214.56;

    // default english notation
    $english_format = number_format($num);
    // 2,215

    // French notation
    $format_francais = number_format($num, 2, ',', ' ');
    // 2 214,56

    $num1 = 2234.5688;

   // English notation with thousands separator
    $english_format_number = number_format($num1,2);
    // 2,234.57

    // english notation without thousands separator
    $english_format_number2 = number_format($num1, 2, '.', '');
    // 2234.57

vous pouvez essayer cela, cela fonctionnera pour vous

number_format(0.00, 2)




php