Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Zahlen in javascript und React und HTML Javascript Ausgabe einer Zahl

24.04.2020 (👁6464)

React und HTML Javascript Ausgabe einer Zahl

Problem:

Deutsche Zahlen werden in javascript / html falsch berechnet.

Lösung:

Wenn man in javascript oder react deusche Zahlen als String einliest in eine react-Zahl vom typ number, dann werden in der Regel die . Punkt und , Komma falsch übernommen.

Deshalb habe ich die kleine Umwandlungs-Funktion geschrieben

convert_german_to_number(string) number

 

Beim lesen einer deutschen Zahl als String

let sumPunkteGesamtnumber  =this.convert_german_to_number(row[sFeld_Punkte_Gesamt + ".SUM"]);

   private  convert_german_to_number(sValue:string) : number   {

    //*convert german 3.015,67

    sValue=sValue.replace(".","");

    sValue=sValue.replace(",",".");

    return  parseFloat(sValue);   

  }

  private  convert_english_to_german(sValue:string) : string   {

    //*convert english 3015.67 to german 3015,67

    sValue=sValue.replace(".",",");

    //sValue=sValue.replace(",",".");

    return  sValue;   

  }

Ausgabe Englisch in Deutsch

Bei der Ausgabe kann mein java.number in deutsche Dezimal-Zahlen / Festkommazahlen mit 2 Stellen  umwandeln, indem man erst

number.toFixed(2)

anwendet und dann

string.replace(".",",")

Beispiel Ausgabe in Sharepoint/react (mit java)

${ sumPunkteGesamt.toFixed(2).replace(".",",")}

Log-Script….. zuvor gingen alle Ausgaben falsch aus

Fehlerhafte Ausgaben zuvor

Die Zahl ist 3013

${ (sumPunkteGesamt}

3.013

.toLocaleString("de-DE",{maximumFractionDigits:2,minimumFractionDigits:2}

 

 

 ${new Intl.NumberFormat('de-DE',{maximumFractionDigits:2}).format(sumPunkteGesamt}

3,01

${sumPunkteGesamt.toLocaleString("en-US",{minimumFractionDigits:2maximumFractionDigits:2})}

3.01

 

 

${sumPunkteGesamt.toLocaleString("en-US")}

3.013

 

 

${sumPunkteGesamt.toLocaleString("de-DE")}

3,013  ist falsch. Hier ist nur der Punkt vertauscht

${sumPunkteGesamt.toLocaleString}

 

Ausgabe 3.103