2009-11-25 1 views
4

Je suis en train de produire une valeur de xml est ce que je fais -calcul PHP

<?php 
    echo $responseTemp->Items->Item->CustomerReviews->AverageRating; 
?> 

Ce sorties 4.5, mais quand je le change au code ci-dessous l'affiche comme 8. Pourquoi pas il affiche comme 9? Merci.

<?php 
echo $responseTemp->Items->Item->CustomerReviews->AverageRating*2; 
?> 
+0

vous pouvez essayer'echo (float) $ responseTemp-> Items-> item-> CustomerReviews-> AverageRating * 2' – Kyle

Répondre

6

Essayez de convertir d'abord la valeur en valeur numérique.

$num = (double) $responseTemp->Items->Item->CustomerReviews->AverageRating; 

echo $num * 2; 

Voir Type Juggling et String Conversion to Numbers sur le site Web de PHP pour plus d'informations.

+0

Merci pour la réponse rapide – usertest

+0

Vous êtes plus que bienvenue. Bienvenue à StackOverflow! – Sampson

+0

Oui, si vous attendez un double, faites en sorte qu'il le soit. – Kzqai

2

Si vous recherchez une valeur décimale sans effectuer de typage, vous devez multiplier par un nombre avec un nombre décimal. Sinon, il retournera un nombre entier régulier comme le nombre que vous lui avez donné.

Essayez multiplier par 2,0

echo $responseTemp->Items->Item->CustomerReviews->AverageRating*2.0; 
+0

L'exécution de l'espérance sur le nombre connu semble moins utile que de s'assurer que la variable est ce que vous attendez d'elle, par ex. 'echo (double) $ responseTemp-> Items-> Item-> CustomerReviews-> AverageRating * 2.0;' – Kzqai

+0

Je sais que ce n'est pas correct, je proposais juste une autre explication pour expliquer pourquoi cela ne fonctionnait pas. – Mike