Bonjour,

Je travail en PHP 5.4.3 et SQL server 2005 en utilisant les procédures de connexion odbc.

Lors d'un ajout d'une valeur en float dans la base de données aucun problème, mais lorsque je veux extraire ces valeurs, si la dernière valeur est un float alors il modifie le nombre de décimal :

A l’insertion 65.3
Dans la base de donnée 65.3
A l'affichage 65.299999999999997

Ce problème ne se pose que sur le dernier nombre décimal affiché.

Juste pour information le but est d'aller chercher des montants associé a des dispositifs

Voici le code PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<?php
	header('Content-Type: text/html; charset=ISO-8859-1');
	$username="user";
	$password="mdp";
	$db="BDD";
	$server="192.168.1.14\SQLEXPRESS";
 
	$connect=odbc_connect("DRIVER={SQL Server};SERVER=$server;DATABASE=$db", $username, $password);
 
	$rsql="SELECT id_dispositif, libelle_dispositif FROM DISPOSITIF";
	$resultat=odbc_exec($connect, $rsql);
	while(odbc_fetch_row($resultat))
	{	
		$rsql2="SELECT montant_financement 
				FROM FINANCEMENT
				WHERE id_dispositif='".odbc_result($resultat,"id_dispositif")."'
				AND id_financeur='".$_GET['id']."'";
		$resultat2=odbc_exec($connect, $rsql2);	
		$value="";
		while(odbc_fetch_row($resultat2))
		{
			$value=odbc_result($resultat2,"montant_financement");
		}
		echo "<input type='text' id='TB".$i."' name='".odbc_result($resultat,"id_dispositif")."' value='".$value."' onKeyPress='return controle_chiffre(event);'>";			
	}
	odbc_close($connect);
?>
J'ai trouvé la solution pour masqué le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$value = number_format($value, 2, '.', '');
Mais je voudrai savoir pourquoi il ne me l'affiche pas correctement comme il est affiché dans la base de donnée.

Merci.