invertire virgola e punto in una stringa di calcolo

master1985

Nuovo Utente
4 Gen 2008
2
0
0
Ho trasformato tramite un programma un calcolo di excel in una pagina asp ma questi ha usato la codifica americana, cosicchè come divisorio delle migliaia mi usa la virgola (mentre noi usiamo il punto) e come divisorio per i centesimi mi usa il punto (mentre noi usiamo la virgola)...come faccio per invertire questa punteggiatura?
Qui sotto la stringa javascript di riferimento, spero mi possiate aiutare:

var co = new Object;
function recalc_onclick(ctl) {
if (true) {


co.pA7B=eeparseFloatTh(document.formc.pA7B.value);co.pA8B=eeparseFloat(document.formc.pA8B.value);co.pA9B=eeparseFloat(document.formc.pA9B.value);calc(co);document.formc.pA10B.value=eedatefmt(fmtdate8,co.pA10B);document.formc.pA12B.value=eedatefmt(fmtdate8,co.pA12B);document.formc.pA17B.value=eedatefmt(fmtdate8,co.pA17B);document.formc.pA18B.value=eedisplayFloatNDTh(co.pA18B,2);document.formc.pA20B.value=eedatefmt(fmtdate8,co.pA20B);document.formc.pA22B.value=eedatefmt(fmtdate8,co.pA22B);document.formc.pA24B.value=eedatefmt(fmtdate8,co.pA24B);
};};


var eeisus=1;var eetrue="TRUE";var eefalse="FALSE";var eedec=".";var eeth=",";var eedecreg=new RegExp("\\.","g");var eethreg=new RegExp(",","g");var eecurrencyreg=new RegExp("[$]","g");var eepercentreg=new RegExp("%","g"); var fmtdaynamesshort=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); var fmtdaynameslong=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"); var fmtmonthnamesshort=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); var fmtmonthnameslong=new Array("January","February","March","April","May","June","July","August","September","October","November","December"); var fmtstrings=new Array(","," ","€"); var fmtdate8=new Array(34,33,25,2);

function calc(data){var cA7B=data.pA7B;var cA8B=data.pA8B;var cA9B=data.pA9B;var cA17B=(((15)*(1)));var cA10B=(((30000)/(cA9B)));var cA12B=(((((((1.2)*(cA8B)))*(cA7B)))+(cA10B)));var cA18B=(cA8B);var cA20B=(((((3)*(cA18B)))*(cA17B)));var cA22B=(((cA12B)-(cA20B)));var cA24B=(((cA9B)*(cA22B)));data.pA10B=cA10B;data.pA12B=cA12B;data.pA17B=cA17B;data.pA18B=cA18B;data.pA20B=cA20B;data.pA22B=cA22B;data.pA24B=cA24B;};

function myIsNaN(x){return(isNaN(x)||(typeof x=='number'&&!isFinite(x)));};function mod(n,d){return n-d*Math.floor(n/d);};function round(n,nd){if(isFinite(n)&&isFinite(nd)){var sign_n=(n<0)?-1:1;var abs_n=Math.abs(n);var factor=Math.pow(10,nd);return sign_n*Math.round(abs_n*factor)/factor;}else{return NaN;}};function eeparseFloat(str){str=String(str).replace(eedecreg,".");var res=parseFloat(str);if(isNaN(res)){return 0;}else{return res;}};var near0RegExp=new RegExp("[.](.*0000000|.*9999999)");function eedisplayFloat(x){if(myIsNaN(x)){return Number.NaN;}else{var str=String(x);if(near0RegExp.test(str)){x=round(x,8);str=String(x);}return str.replace(/\./g,eedec);}};function eedisplayScientific(x,nd){if(myIsNaN(x)){return Number.NaN;}else{var str=String(x.toExponential(nd));return str.replace(/\./g,eedec);}};function eedisplayFloatND(x,nd){if(myIsNaN(x)){return Number.NaN;}else{var res=round(x,nd);if(nd>0){var str=String(res);if(str.indexOf('e')!=-1)return str;if(str.indexOf('E')!=-1)return str;var parts=str.split('.');if(parts.length<2){var decimals=('00000000000000').substring(0,nd);return(parts[0]).toString()+eedec+decimals;}else{var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);return(parts[0]).toString()+eedec+decimals;}}else{return res;}}};function eedisplayPercent(x){if(myIsNaN(x)){return Number.NaN;}else{return eedisplayFloat(x*100)+'%';}};function eedisplayPercentND(x,nd){if(myIsNaN(x)){return Number.NaN;}else{return eedisplayFloatND(x*100,nd)+'%';}}
function eeparseFloatTh(str){str=String(str).replace(eethreg,"");str=String(str).replace(eedecreg,".");var res=parseFloat(str);if(isNaN(res)){return 0;}else{return res;}};function eedisplayFloatNDTh(x,nd){if(myIsNaN(x)){return Number.NaN;}else{var res=round(x,nd);if(nd>0){var str=String(res);if(str.indexOf('e')!=-1)return str;if(str.indexOf('E')!=-1)return str;var parts=str.split('.');var res2=eeinsertThousand(parts[0].toString());if(parts.length<2){var decimals=('00000000000000').substring(0,nd);return(res2+eedec+decimals);}else{var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);return(res2+eedec+decimals);}}else{return(eeinsertThousand(res.toString()));}}};function eedisplayPercentNDTh(x,nd){if(myIsNaN(x)){return Number.NaN;}else{return eedisplayFloatNDTh(x*100,nd)+'%';}}function eeinsertThousand(whole){if(whole==""||whole.indexOf("e")>=0){return whole;}else{var minus_sign="";if(whole.charAt(0)=="-"){minus_sign="-";whole=whole.substring(1);};var res="";var str_length=whole.length-1;for(var ii=0;ii<=str_length;ii++){if(ii>0&&ii%3==0){res=eeth+res;};res=whole.charAt(str_length-ii)+res;};return minus_sign+res;}};function eedatefmt(fmt,x){if(!isFinite(x))return Number.NaN;var padding=0;var tmp=0;var res="";var len=fmt.length;for(var ii=0;ii<len;ii++){if(fmt[ii]>31){res+=fmtstrings[fmt[ii]-32];}else{switch(fmt[ii]){case 2:res+=eemonth(x);break;case 3:tmp=eemonth(x);if(tmp<10){res+="0";};res+=tmp;break;case 4:res+=fmtmonthnamesshort[eemonth(x)-1];break;case 5:res+=fmtmonthnameslong[eemonth(x)-1];break;case 6:res+=eeday(x);break;case 7:tmp=eeday(x);if(tmp<10){res+="0";};res+=tmp;break;case 8:res+=fmtdaynamesshort[weekday(x,1)-1];break;case 9:res+=fmtdaynameslong[weekday(x,1)-1];break;case 10:tmp=year(x)%100;if(tmp<10){res+="0";};res+=tmp;break;case 11:res+=year(x);break;case 12:res+=hour(x);break;case 13:tmp=hour(x);if(tmp<10){res+="0";};res+=tmp;break;case 14:tmp=hour(x)%12;if(tmp==0){res+="12";}else{res+=tmp%12;};break;case 15:tmp=hour(x)%12;if(tmp==0){res+="12";}else{if(tmp<10){res+="0";};res+=tmp;};break;case 16:res+=minute(x);break;case 17:tmp=minute(x);if(tmp<10){res+="0";};res+=tmp;break;case 18:res+=second(x);break;case 19:tmp=second(x);if(tmp<10){res+="0";};res+=tmp;break;case 21:case 22:if(hour(x)<12){res+="AM";}else{res+="PM";};break;case 23:res+=eedisplayFloat(x);break;case 24:tmp=fmt[++ii];res+=eedisplayFloatND(x,tmp);break;case 25:tmp=fmt[++ii];res+=eedisplayFloatNDTh(x,tmp);break;case 26:res+=eedisplayPercent(x);break;case 27:tmp=fmt[++ii];res+=eedisplayPercentND(x,tmp);break;case 28:tmp=fmt[++ii];res+=eedisplayPercentNDTh(x,tmp);break;case 29:tmp=fmt[++ii];res+=eedisplayScientific(x,tmp);break;case 30:padding=fmt[++ii];tmp=hour(x)+Math.floor(x)*24;tmp=tmp.toString();if(tmp.length<padding){res+=('00000000000000').substring(0,padding-tmp.length);}res+=tmp;break;};};};return res;};
function leap_gregorian(year){return((year%4)==0)&&(!(((year%100)==0)&&((year%400)!=0)));}var GREGORIAN_EPOCH=1721425;function gregorian_to_jd(year,month,day){return(GREGORIAN_EPOCH-0)+(365*(year-1))+Math.floor((year-1)/4)+(-Math.floor((year-1)/100))+Math.floor((year-1)/400)+Math.floor((((367*month)-362)/12)+((month<=2)?0leap_gregorian(year)?-1:-2))+day);}function jd_to_gregorian(jd){var wjd,depoch,quadricent,dqc,cent,dcent,quad,dquad,yindex,year,yearday,leapadj;wjd=Math.floor(jd);depoch=wjd-GREGORIAN_EPOCH-1;quadricent=Math.floor(depoch/146097);dqc=mod(depoch,146097);cent=Math.floor(dqc/36524);dcent=mod(dqc,36524);quad=Math.floor(dcent/1461);dquad=mod(dcent,1461);yindex=Math.floor(dquad/365);year=(quadricent*400)+(cent*100)+(quad*4)+yindex;if(!((cent==4)||(yindex==4))){year++;}yearday=wjd-gregorian_to_jd(year,1,1);leapadj=((wjd<gregorian_to_jd(year,3,1))?0leap_gregorian(year)?1:2));var month=Math.floor((((yearday+leapadj)*12)+373)/367);var day=(wjd-gregorian_to_jd(year,month,1))+1;return new Array(year,month,day);}function eeday(serial_number){if(!isFinite(serial_number))return Number.NaN;if(serial_number<1){return 0;}if(serial_number>60)serial_number--;var res=jd_to_gregorian(serial_number+2415020);return res[2];};function hour(serial_number){if(!isFinite(serial_number))return Number.NaN;var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);return Math.floor(res/3600);}function minute(serial_number){if(!isFinite(serial_number))return Number.NaN;var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);return Math.floor(res/60)%60;};
function eemonth(serial_number){if(!isFinite(serial_number))return Number.NaN;if(serial_number<1){return 1;}if(serial_number>60)serial_number--;var res=jd_to_gregorian(serial_number+2415020);return res[1];};function second(serial_number){if(!isFinite(serial_number))return Number.NaN;var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);return res%60;};function weekday(serial_number,return_type){if(!isFinite(return_type)||!isFinite(serial_number))return Number.NaN;if(return_type<1||return_type>3)return Number.NaN;var res=Math.floor(serial_number+6)%7;switch(Math.floor(return_type)){case 1:return res+1;case 2:return(res+6)%7+1;case 3:return(res+6)%7;};return "hej";};function year(serial_number){if(!isFinite(serial_number))return Number.NaN;if(serial_number<1){return 1900;}if(serial_number>60)serial_number--;var res=jd_to_gregorian(serial_number+2415020);return res[0];};
</script>


grazie a tutti!
ciao!
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Tutto questo fiume di codice non ci aiuta molto :)

Per il discorso di migliaia e decimali è semplicissimo.

Noi usiamo:

1.000,50 (mille e cinquanta centesimi)

In America usano:

1,000.00 (idem con patate)

Fai un replace!

<%
Function MigliaiaDecimali(Numero)
MigliaiaDecimali = Replace(Replace(Numero, ",", "."), ".", ",")
End Function
%>

Trasformi prima la virgola in punto e poi il punto in virgola.

La richiami cosi:

<%
Response.Write MigliaiaDecimali("1,000.00")
%>

Tieni presente che non l'ho testata e che a primo acchitto potrebbe dare qualche problema, ma la logica è questa.

Ciao!
 
Discussioni simili
Autore Titolo Forum Risposte Data
K [Javascript] [HTML] Invertire colori alternati in tabella Javascript 3
M [HTML] Invertire DIV su dispositivi mobile HTML e CSS 2
N CSV doppi apici e punto e virgola da Excel tramite PHP PHP 2
C Sostituire virgola con punto form PHP 2
ivarello implode e virgola frontale PHP 2
B punto o virgola nei decimali e nelle migliaia Classic ASP 1
O problemi con decimali dopo la virgola! Javascript 2
P controllo delle cifre dopo la virgola.. Programmazione 2
metalgemini decimali con la virgola Javascript 1
frankiedeguello Recorset: numero con virgola Classic ASP 2
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F punto interrogativo Javascript 1
A nome file che contiene punto passato come parametro a query PHP 31
L un punto ogni tot. speso PHP 0
C [PHP] Punto su mappa PHP 0
F [Javascript] chiusura popup e refresh pagina madre su punto preciso Javascript 0
G A che punto è della pagina jQuery 0
U div fisso che ad un certo punto dello scroll scompare jQuery 3
C Trovare coordinate del quadrato intorno ad un punto centrale conoscendo la distanza PHP 1
V uft-8 e punto interrogativo HTML e CSS 2
K visualizzare risultato di ajax in un punto ben preciso.... Ajax 2
N Aggiungere codice in preciso punto PHP 2
V Assegnazione punto giornaliero PHP 3
G Usare il timbro clone da un punto ben preciso senza uscire Photoshop 2
R Ricerca risultati ner raggio di 'n' km da un punto PHP 3
M Puntare DNS: come devo configurare l'hosting dove punto i dns Hosting 1
8 Link su un punto della pagina HTML e CSS 22
S Reindirezionare l'utente in un punto della pagina Javascript 3
S [jQuery] punto tra le virgolette jQuery 2
A Aprire una index in un punto preciso PHP 5
A aprire pagina html in un punto preciso HTML e CSS 4
O Punto di equilibrio di un vettore [C] .NET Framework 6
M Css come?: riga che si espande ma e si restringe fino a un certo punto HTML e CSS 15
A Generare un punto "nelle vicinanze " di un altro. PHP 0
max1850 Inserimento del punto e dei decimali Classic ASP 2
G Lavoro e offerta online ......il punto di incontro Presenta il tuo Sito 0
S estrarre file da un punto iso Windows e Software 0
G Tornare in un punto preciso dell'animazione! Flash 3
G Pagerank e Backlink: qual è il punto d'incontro? SEO e Posizionamento 1
B Apertura filmato swf in un punto preciso Flash 1
L Write in un determinato punto da un link senza refresh Javascript 0
C A.C.S. - Un punto di riferimento per la protezione del tuo lavoro. Presenta il tuo Sito 2

Discussioni simili