Calculs / Chaines de caractères

Eléphant du PHP | 136 Messages

26 déc. 2006, 13:44

Bonjour,

j'ai un soucis sur les fonctions arithmétiques avec php.
J'ai une table avec deux champ "nombre" et "nombre2".
Le champ "Nombre" à des données nombres entiers de type : 10 ou 14 ou 30
Le champ "Nombre2" à des données nombres avec 1 décimale de type : 12,4 ou 15,3 ou 73,8

Pour le moment ces deux champs sont de type CHAR (5)

J'aimerais avec php additioner ces deux champs :

$moncalcul=$nombre+$nombre2;

Sauf qu'en faisant cela j'ai un nombre entier qui arrive en résultat...comment afficher les décimales ?
Changer le type de tables ? si oui laquelle ?
Changer le type de calcul ?

Je m'en sort pas et je tourne en rond bouuuuuuuuuhhhh !!!
Merci de votre aide,

Bisvan
Bisvan :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 13:57

Salut,

est-ce que tu peux montrer un peu plus de code ? de la récupération des données au calcul et affichage.
Merci

Eléphant du PHP | 136 Messages

26 déc. 2006, 14:03

OK voici
query = "select * from matable where idsession='$idsession'";
$result = mysql_db_query("$bdd", $query) or die($query . mysql_error( ));
$r = mysql_fetch_array($result);
$nombre= $r[nombre];
$nombre2= $r[nombre2];

$calcul=$nombre+$nombre2;
echo "$calcul";
Voici :)
Bisvan :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 14:10

À ce niveau là tu récupères les bons nombres ?
$nombre= $r[nombre];
$nombre2= $r[nombre2];
Où est-ce qu'il y a déjà le problème ?

Eléphant du PHP | 136 Messages

26 déc. 2006, 14:13

Nop les nombres apparaissent correctement (avec virgule pour les décimaux et sans pour les entiers)
C'est plutôt le calcul qui merde vu qu'ils met un résultat sans décimale
Bisvan :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 14:23

Est-ce que tu peux quand même nous montrer un echo des 2 nombres utilisés ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 14:28

Voici les nombres exemples de la documentation :
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?> 
Je pense que tu verras une différence avec les tiens ;)

-> http://fr.php.net/manual/fr/language.types.float.php

Eléphant du PHP | 136 Messages

26 déc. 2006, 14:30

justement j'étais allé voir la documentation sur les float...mais je ne vois pas la différence :?
Bisvan :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 14:33

Remplace tes virgules par des points.
<?php
echo $nombre = "12"; echo "<br />";
echo $nombre2 = "10,5"; echo "<br />";
echo $nombre3 = "10.5"; echo "<br />";

$total1 = $nombre + $nombre2;
$total2 = $nombre + $nombre3;

echo '$nombre + $nombre2 = '.$total1; echo "<br />";
echo '$nombre + $nombre3 = '.$total2;
?>

Code : Tout sélectionner

12 10,5 10.5 $nombre + $nombre2 = 22 $nombre + $nombre3 = 22.5

Eléphant du PHP | 136 Messages

26 déc. 2006, 14:37

oups...ok :)
Bisvan :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 déc. 2006, 15:09

Résolu donc ? Si oui tu peux marquer le sujet