mathNewbie: Komma veschieben

Kennt / Hat jemand eine Funktion mit der man das Komma bei einer Zahl beliebig verschieben kann?

mathNewbie

  1. Hallo,

    345,56 * 10 = 3455,6
    345,56 / 10 = 23,456

    oder bin ich verwirrt?

    gruss

    --
    no strict;
    no warnings;
    Ich weiss es nicht, aber ich bin mir nicht sicher.
    Kluge Leute sind auch nur Menschen.
    1. Hallo,

      345,56 / 10 = 23,456
      oder bin ich verwirrt?

      Naja :rolleyes:

      345,56 / 10 = 23,456 scheint sich zumindest jeder math. Grundlage zu entziehen ;-)

      Mit freundlichem Gruß
      Micha

      1. Hihi,

        Naja :rolleyes:

        345,56 / 10 = 23,456 scheint sich zumindest jeder math. Grundlage zu entziehen ;-)

        ich hätt vielleicht doch schlafen sollen, klassischer fipptehler.

        gruss

        --
        no strict;
        no warnings;
        Ich weiss es nicht, aber ich bin mir nicht sicher.
        Kluge Leute sind auch nur Menschen.
  2. Ganz so einfach ist es leider nicht.

    Ich möchte zwischen Einheiten hin und her rechnen: z.B. hl -> mm^3 -> m^3

    Damit rechne ich ungefähr so: 12,34591*100000/10000000.

    Dabei kommt es aber immer wieder zu ungenauigkeitn der Art:

    22,26 mm³ = 2,2260000000000002e-7 hl

    Also muss ich wohl alles in eine String umwandeln und dann das Komma verschieben.

    Da ich mirgedacht habe, dass das bestimmt schon mal einer gemacht hat, dachte ich mir, ich frage hier mal nach.

    1. moin :)

      Ganz so einfach ist es leider nicht.

      ...

      Also muss ich wohl alles in eine String umwandeln und dann das Komma verschieben.

      Da würde sich ja Stringmanipulation anbieten. Schau dir doch mal die Stringmethoden substring(begin,end) und indexOf(String) bzw. indexOf(String,begin) genauer an.
      Um das Komma nach hinten zu verschieben gehst du ungefähr so vor:

      myVar2=myVar.substring(0,myVar.indexOf(","))+myVar.substring(myVar.indexOf(",")+1, [ausgerechnete Stelle an der du das Komma einfügen willst])+","+myVar.substring([ausgerechnete Stelle an der du das Komma einfügen willst]);

      Hört sich koplizierter an, als es ist ;)

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    2. Hallo mathNewbie,

      schau dir mal den Thread etwas weiter unten an: https://forum.selfhtml.org/?t=107456&m=667310.

      Dein Problem besteht darin, dass du erwartest, Rechner rechnen beliebig genau. Bei einer 64-bit-Zahldarstellung kannst du aber nur [1] ca. 15 Nachkommastellen erwarten. Außerdem arbeiten Rechner im Hexadezimalsystem und bei der Umrechnung in das Dezimalsystem kommt es ebenfalls zu Rundungsfehlern.

      Gruß, Jürgen

      [1] Bei dieser Genauigkeit kann man bis 10.000.000.000.000,00 € auf den Cent genau rechnen. Das sollte für die meisten Shopsysteme reichen. Auch Naturwissenschaftler, Ingenieure, etc. kommen mit dieser Genauigkeit gut zurecht. Und wenn das nicht reicht, dann muss man auf Spezialsoftware (Computeralgebra) zurückgreifen.

      1. hi,

        Außerdem arbeiten Rechner im Hexadezimalsystem

        echt? ich dachte, sie rechneten im Binärsystem ...

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo wahsaga,

          echt? ich dachte, sie rechneten im Binärsystem ...

          natürlich kennt die Digitalelektronik nur "0" und "1". Aber hast du schon mal an einem Ein-Bit-Rechner gesessen?

          Gruß, Jürgen

          1. Hi,

            natürlich kennt die Digitalelektronik nur "0" und "1". Aber hast du schon mal an einem Ein-Bit-Rechner gesessen?

            Wenn Du (moderne) Digitalstereoanlagen auch dazu zählst: Natürlich! Du etwa nicht? =;-o

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hallo Cybaer,

              Wenn Du (moderne) Digitalstereoanlagen auch dazu zählst: Natürlich! Du etwa nicht? =;-o

              die haben zwar einen Ein-Bit-Wandler, ich meine aber, für die Filterung und Fehlerkorrektur setzen die immer noch auf 16-Bit-Technik. Ob sich hier 32-Bit-Mikrokontroller lohnen, weiß ich nicht.

              Gruß, Jürgen

              PS: Mein erster Rechner zu hause war die bzw. in der Waschmaschine.

              1. hi,

                PS: Mein erster Rechner zu hause war die bzw. in der Waschmaschine.

                is' ja l33t! und was hast du darauf k33wl3s geproggt ...?

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Hi,

                  is' ja l33t! und was hast du darauf k33wl3s geproggt ...?

                  "Schleudern im 3/4-Takt!" - der sog. "W4lz3R-H4x". ;-)

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                2. Hallo wahsaga,

                  is' ja l33t! und was hast du darauf k33wl3s geproggt ...?

                  sorry, aber was ist l33t und k33wl3s?

                  Die Waschmaschine kann man mit einem Windowsrechner vergleichen, der ja normalerweise auch ohne Compiler o.ä. ausgeliefert wird:
                  Man kann nur die vorhandene Software nutzen, also z.B Buntwäsche 1.0. Parameterübergabe geht auch nur über Dreh-Menues, ein Kommandozeilen-Modus ist nicht vorgesehen.

                  Und um Fragen vorzubeugen: Ja, das Display ist in Farbe.
                                             Nein, sie hat keinen Internetanschluss.

                  Gruß, Jürgen

                  1. Hi,

                    sorry, aber was ist l33t und k33wl3s?

                    L4M3r! ;-)

                    Gruß, Cybaer

                    --
                    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                  2. Hi!

                    sorry, aber was ist l33t und k33wl3s?

                    Leetspeak

                    Gruß

                    Martin

    3. Hi,

      Da ich mirgedacht habe, dass das bestimmt schon mal einer gemacht hat, dachte ich mir, ich frage hier mal nach.

      Da hast Du wohl richtig gedacht: Coding: Number-Library ;-)

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!