8791 sujets

Développement web côté serveur, CMS

Modérateur
Salut,

j'ai fait un script (calculatrice) qui fonctionne assez bien. Au fur et à mesure je rajoute des scripts complémentaires. J'arrive à un pint que je n'arrive pas à résoudre. Je souhaite qu'il y ait que deux chiffres apès la virgule. Malheureusement, je ne vois pas vraiment comment faire. Si vous pouviez me donner un chti coup de pouce, ce serait sympa.


<?php

//declar variables
$num1=$_GET['num1'];
$num2=$_GET['num2'];
//echo "$num1 <br />";
//echo "$num2 <br />";
$operateur=$_GET['operateur'];
//print_r($operateur);
//var_dump($operateur);

//plan de construction
if ($_GET['_verif_num']){
	if (valid_calc()){
		calc($num1,$num2);
		form_calc();
	}else{
		echo "<h1>Vous devez insérer des valeurs numériques</h1><br />";
		form_calc();
	}
}else{
	echo "<h1>Vous devez insérer des valeurs numériques</h1><br />";
	form_calc();
}

//declar fonction
function valid_calc(){
	global $num1;
	global $num2;
	if ($num1!=strval(intval($num1))){
			return false;
		}elseif ($num2!=strval(intval($num2))){
			return false;
	}else{
		return true;
	}
}
function form_calc(){	
?>
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive">
		<title>agl:pagetitle</title>
	</head>

	<body>
		<form id="FormName" action="file:///C:/wamp/www/o_reilly_intro_php/calculatrice.php" method="get" name="FormName">
			<input type="text" name="num1" size="24">  <select name="operateur" size="1">
				<option value="+">+</option>
				<option value="-">-</option>
				<option value="*">*</option>
				<option value="/">/</option>
			</select> <input type="text" name="num2" size="24"> = <input type="submit" name="" value="Va chercher">
			<input type="hidden" name="_verif_num" value="1">
		</form>
	</body>

</html>
<?php
}
function calc($num1,$num2){
	global $operateur;
	//echo $operateur;
	switch ($operateur){
		case "+":
			$resultat=$num1+$num2;
			break;
			return $resultat;
		case "-":
			$resultat=$num1-$num2;
			break;
			return $resultat;
		case "*":
			$resultat=$num1*$num2;
			break;
			return $resultat;
		case "/":
			$resultat=$num1/$num2;
			break;
			return $resultat;
	}
	echo "<h1>Le résultat est : $resultat</h1><br />";
}
/*calc($num1,$num2);
form_calc();*/
?>


++
Modifié par Nolem (05 Sep 2007 - 11:55)
Salut,

tu peux peut-être faire un explode() sur ton $resultat avec comme élément séparateur la virgule (ou le point, je ne sais pas comment est représenté ton résultat et faire un substr($resultat[1],0,2) pour n'afficher que les 2 premiers caractères de ton 2è morceau ($resultat[1] qui contiendra ce qui se trouve après ton élément séparateur)
Administrateur
Bonjour,

on s'éloigne sérieusement des Standards du web avec cette question Smiley cligne
Pour y répondre, l'affichage d'une variable avec 2 chiffres après la virgule se fait avec printf() et le format %.2d , de mémoire (et le lien vers sprintf pour les explications sur la syntaxe à la %-10.3g).
Pour une vraie calculatrice codée à la main, euh ... developpez.com ? Smiley lol
Modifié par Felipe (04 Sep 2007 - 16:56)
Cela peut être amusant en effet de s'interroger sur la façon de faire une calculatrice. Surtout lorsque l'on est amené à faire des applis de facturations dans des domaines particuliers avec leurs propres règles pour la précision décimale Smiley smile

Bon je passais juste, ne faites pas attention Smiley smile
Modifié par Thanh (05 Sep 2007 - 00:40)
Modérateur
Salut,

Felipe a écrit :

on s'éloigne sérieusement des Standards du web avec cette question Smiley cligne


Peux tu me dire un peu plus sur ce que tu dis. Si c'est pour ma page html, je n'ai pas fait l'effort de la rendre correct (doctype entre autre).

Felipe a écrit :

Pour y répondre, l'affichage d'une variable avec 2 chiffres après la virgule se fait avec printf() et le format %.2d , de mémoire (et le lien vers sprintf pour les explications sur la syntaxe à la %-10.3g).


Je te remercie Smiley smile Je ne manie pas très bien cette fonction mais j'ai réussi. Erf, je ne suis pas un pro en php. Mais ça va viendre Smiley smile

Thanh a écrit :

Cela peut être amusant en effet de s'interroger sur la façon de faire une calculatrice. Surtout lorsque l'on est amené à faire des applis de facturations dans des domaines particuliers avec leurs propres règles pour la précision décimale smile


En effet, c'est une des raison de mon script Smiley smile

Pour le moment, j'ai gardé une seule méthode qui fonctionne bien Smiley smile . Néanmoins, je vais voir de plus près les autres méthodes que vous m'avez proposées.

Merci encore de m'avoir aidé Smiley smile