Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. QML parseFloat()

QML parseFloat()

Scheduled Pinned Locked Moved Unsolved German
4 Posts 3 Posters 812 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    M.W43
    wrote on 4 Nov 2021, 12:47 last edited by
    #1

    Hallo,
    ich programmiere gerade einen Taschenrechner in QML.
    Replace() ein Punkt zu einem Komma. Dann Wandel ich den String zu ein Float.

    Aber parseFloat() macht mir aus einen String mit einen Komma eine Ganzzahl und aus einen String mit einen Punkt ein Float. Interpretiert parseFloat() Komma oder Punkt anders?

     button11.onClicked: {
                if (aktiveEingabe === 1){
                   let punkt = ".";
                   let komma = punkt.replace(".",",");
                    textField.text=textField.text + komma;
                }else{
                    let punkt = ".";
                    let komma = punkt.replace(".",",");
                    textField1.text = textField1.text + komma;
                }
               }
    
     function operatorEingabe(operator) {
                //für das Ergebnis
                var ergebnis = 0.0
                //die Werte umwandeln
                var zahl1_1 = textField.text;
                var zahl1_2 = textField1.text;
    
                var zahl1 = parseFloat(textField.text);
                var zahl2 = parseFloat(textField1.text);
                //hat die Umwandlung geklappt?
                if (isNaN(zahl1) || isNaN(zahl2)) {
                    ausgabe.text = "Die Konvertierung ist gescheitert.";
                    return;
                }
    
    J K 2 Replies Last reply 4 Nov 2021, 12:52
    0
    • M M.W43
      4 Nov 2021, 12:47

      Hallo,
      ich programmiere gerade einen Taschenrechner in QML.
      Replace() ein Punkt zu einem Komma. Dann Wandel ich den String zu ein Float.

      Aber parseFloat() macht mir aus einen String mit einen Komma eine Ganzzahl und aus einen String mit einen Punkt ein Float. Interpretiert parseFloat() Komma oder Punkt anders?

       button11.onClicked: {
                  if (aktiveEingabe === 1){
                     let punkt = ".";
                     let komma = punkt.replace(".",",");
                      textField.text=textField.text + komma;
                  }else{
                      let punkt = ".";
                      let komma = punkt.replace(".",",");
                      textField1.text = textField1.text + komma;
                  }
                 }
      
       function operatorEingabe(operator) {
                  //für das Ergebnis
                  var ergebnis = 0.0
                  //die Werte umwandeln
                  var zahl1_1 = textField.text;
                  var zahl1_2 = textField1.text;
      
                  var zahl1 = parseFloat(textField.text);
                  var zahl2 = parseFloat(textField1.text);
                  //hat die Umwandlung geklappt?
                  if (isNaN(zahl1) || isNaN(zahl2)) {
                      ausgabe.text = "Die Konvertierung ist gescheitert.";
                      return;
                  }
      
      J Offline
      J Offline
      J.Hilk
      Moderators
      wrote on 4 Nov 2021, 12:52 last edited by
      #2

      @M-W43 said in QML parseFloat():

      Interpretiert parseFloat() Komma oder Punkt anders

      sicher der Rest der Welt hat nen Punkt als Trenner zum Zahlenbruch. Deutsch ist da ziemlich alleine mit ,als Trenner.

      parseFloat akzeptiert daher nur . als gültiges Zeichen in der Zeichenkette


      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


      Q: What's that?
      A: It's blue light.
      Q: What does it do?
      A: It turns blue.

      1 Reply Last reply
      1
      • M M.W43
        4 Nov 2021, 12:47

        Hallo,
        ich programmiere gerade einen Taschenrechner in QML.
        Replace() ein Punkt zu einem Komma. Dann Wandel ich den String zu ein Float.

        Aber parseFloat() macht mir aus einen String mit einen Komma eine Ganzzahl und aus einen String mit einen Punkt ein Float. Interpretiert parseFloat() Komma oder Punkt anders?

         button11.onClicked: {
                    if (aktiveEingabe === 1){
                       let punkt = ".";
                       let komma = punkt.replace(".",",");
                        textField.text=textField.text + komma;
                    }else{
                        let punkt = ".";
                        let komma = punkt.replace(".",",");
                        textField1.text = textField1.text + komma;
                    }
                   }
        
         function operatorEingabe(operator) {
                    //für das Ergebnis
                    var ergebnis = 0.0
                    //die Werte umwandeln
                    var zahl1_1 = textField.text;
                    var zahl1_2 = textField1.text;
        
                    var zahl1 = parseFloat(textField.text);
                    var zahl2 = parseFloat(textField1.text);
                    //hat die Umwandlung geklappt?
                    if (isNaN(zahl1) || isNaN(zahl2)) {
                        ausgabe.text = "Die Konvertierung ist gescheitert.";
                        return;
                    }
        
        K Offline
        K Offline
        KroMignon
        wrote on 4 Nov 2021, 13:06 last edited by KroMignon 11 Apr 2021, 13:06
        #3

        @M-W43 said in QML parseFloat():

        Aber parseFloat() macht mir aus einen String mit einen Komma eine Ganzzahl und aus einen String mit einen Punkt ein Float. Interpretiert parseFloat() Komma oder Punkt anders?

        Um ein String in Float zu konvertier und dabei die Spracheinstellung Berücksichtigung, ist es besser/einfacher Number.fromLocaleString() zu benutzen:

        var german = Qt.locale("de_DE");
        var d;
        d = Number.fromLocaleString(german, "1234,56")   // d == 1234.56
        d = Number.fromLocaleString(german, "1.234,56") // d == 1234.56
        d = Number.fromLocaleString(german, "1234.56")  // throws exception
        d = Number.fromLocaleString(german, "1.234")    // d == 1234.0
        

        It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

        1 Reply Last reply
        3
        • M Offline
          M Offline
          M.W43
          wrote on 4 Nov 2021, 14:08 last edited by
          #4

          @KroMignon
          so scheint es zu klappen!

           function operatorEingabe(operator) {
                      //für das Ergebnis
                      var ergebnis = 0.0
                      //die Werte umwandeln
                      var zahl1_1 = textField.text;
                      var zahl1_2 = textField1.text;
                      var german = Qt.locale("de_DE");
                      var zahl1 = Number.fromLocaleString(german, zahl1_1);
                      var zahl2 = Number.fromLocaleString(german, zahl1_2);
                      //hat die Umwandlung geklappt?
                      if (isNaN(zahl1) || isNaN(zahl2)) {
                          ausgabe.text = "Die Konvertierung ist gescheitert.";
                          return;
          
          1 Reply Last reply
          0

          2/4

          4 Nov 2021, 12:52

          • Login

          • Login or register to search.
          2 out of 4
          • First post
            2/4
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved