Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 15h14   #1
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut Supprimer un formatage de champ en javascript(faite avec du php :number_format) pour calcul.

Bonjour,

Je formate des champs dans un fichier php avant de les envoyer en réponse via une requête AJAX.

En recevant la réponse, je dois faire un calcul sur ces mêmes champs dans une fonction de calcul de soustraction.
mais le résultat m'affiche : NaN pour cause de formatage des valeurs.


formatage coté php :fonction php de formatage

Code :
$montant_prevu=number_format($row_prev_mod['montant_prevu_compte'],0,'',' ' );
je dispose d'une fonction de formatage en javascript que j'utilise pour l'annuler mais ça m'affiche un resultat totalement érroné aulieu de Nan.

Code :
1
2
3
4
5
6
7
8
 
function number_format( number, decimals, dec_point, thousands_sep ) {
var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
var d = dec_point == undefined ? "," : dec_point;
var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
Pour déactiver le formatage , j'utilise

Code :
1
2
 
var montant_prevu=number_format(Number(document.getElementById('Mtant_prevu').value),0,'','');
mais ça m'affiche un résultat erroné.


Comment je peux annuler correctement le formatage dans mon Javascript pour effectuer le calcul ?


Merci de vos solutions.

Cordialement.
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 15h23   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
isNaN(decimals = Math.abs(decimals)) ? 2 : decimals
tu peux déjà faire la différence entre une affectation et une comparaison, ce qui te permettra d'obtenir le bon résultat pour cette instruction
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 15h49   #3
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Bonjour,

si j'ai formaté ces deux variables coté PHP :
Le séparateur d'unités est de l'espace.

Code :
1
2
3
$montant_prevu=number_format($row_prev_mod['montant_prevu_compte'],0,'',' ' );
 
$montant_trimestre=number_format($row_prev_mod['montant_trimestre'],0,'',' ' );
Et que je souhaite faire le calcul de soustraction en javascript sur ces deux variables :

Code :
result=montant_prevu - montant_trimestre;
Où je dois placer
Code :
isNaN(decimals = Math.abs(decimals)) ? 2 : decimals
pour effectuer le calcul ?
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h25.


 
 
 
 
Partenaires

Hébergement Web