Seite 1 von 1

Zoll in mm konvertieren

Verfasst: Do 21.Feb, 2008 20:11
von Holger
Ich habe eine formel, die mir Zoll in mm und umgekehrt konvertiert. Essentiell für unsere Seite.

Code: Alles auswählen

<form>
<input type="hidden" name="M_expr"
            value="(Math.round(10000*(25.4*N.value)))/10000"><input
            type="hidden" name="N_expr"
            value="(Math.round(10000*(.03937* M.value)))/10000">
<p><b>TUM/MM konverterare</b><br>
<font size="-2">Använd PUNKT som decimaltecken!<br>
Mata in ett värde och klicka i det andra fältet för beräkning.</font>
<p><b>tum:</b> <input
            type="text" size="6" maxlength="6" name="N"
            onchange="eval('M.value = ' + this.form.M_expr.value)"></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b>mm:</b> <input type="text" size="6"
            maxlength="6" name="M"
            onchange="eval('N.value = ' + this.form.N_expr.value)"><input type="reset" name="reset"
            value="reset">
<br>
</form>
Nuuuuuurrrrrr ... Zoll schreibt man auch mal "1 1/8". Wie könnte ich das abfangen?

Gruss
Holger

Verfasst: Do 21.Feb, 2008 23:14
von oxpus
Oha, dann müsste man mit regulären Ausdrücken die Eingabe erst einmal zerflücken und in eine verwendbare Zahl konvertieren.
Da muss ich passen...

*reguläre-ausdrücke-sind-gehirn-knoten-erzeuger*

Verfasst: Fr 22.Feb, 2008 08:00
von Max
Ich würde 1 1/8 so abfragen:

Zwei Felder; eins für die ganzen Werte und eins für die Brüche.
Feld A = ganze
Feld B = Bruch

A wird mit 1 gefüllt und B mit 8
Dann hat man zwei Werte, die man nachher verbindet.
Z.B. $zoll= $A + 1/$B

Dann sollte man eigentlich 1,125 in $zoll stehen haben.

Ist aber auch nur eine Idee und setzt voraus, dass die Leute dann die Felde korrekt füllen.



Gruß Max

Verfasst: Fr 22.Feb, 2008 08:38
von Holger
Naja, man müsste für die 1 auch eine Variable haben ... es kann ja auch 1 2/7 Zoll sein. Aber die Idee ist doch gut!
Jetzt muss ich das "nur noch" umsetzen ...

Verfasst: Fr 22.Feb, 2008 08:54
von Max
[quote="Holger";p="85000"]Naja, man müsste für die 1 auch eine Variable haben ... es kann ja auch 1 2/7 Zoll sein.[/quote]

ich wusste nicht, dass es auch Zollangaben mit 2/7 gibt (habe ich bei Werkzeugen nie gesehen).

Dann eben 3 Felder, wovon eins dann für den oberen Wert im Bruch steht (und idealerweise standardmäßig mit einer 1 gefüllt ist)

Feld A = ganze ( hier mal 3)

Feld A_1 = oberer Wert ( hier mal 2)
Feld B = Bruch (hier mal 7)

A wird mit 3 gefüllt, A_1 mit 2 und B mit 7
Dann hat man drei Werte, die man nachher verbindet.
Z.B. $zoll= $A + $A_1/$B

Dann sollte man eigentlich 3,2857 in $zoll stehen haben.

Verfasst: Fr 22.Feb, 2008 09:05
von Holger
2/7 war nur ein Beispiel ... es gibt doch auch sicher andere Angaben als 1/X oder? Wenn nicht: das würde das Ganze ja vereinfachen!

Verfasst: Fr 22.Feb, 2008 09:47
von Max
[quote="Holger";p="85002"]2/7 war nur ein Beispiel ... es gibt doch auch sicher andere Angaben als 1/X oder? Wenn nicht: das würde das Ganze ja vereinfachen![/quote]

Ich weiß es nicht, mir ist noch nie ein anderer Bruch als 1/x aufgefallen.

Aber ich werde versuchen, am Wochenende mal daran zu denken,meinen Schwager zu fragen.
Der ist hier in D Entwicklungsingenieur im Maschinenbau, die Produktion findet in Ohio statt, daher sind die ständig am Umrechnen von metrisch zu inch. Also schätze ich, dass er das auch weiß.

Wenn es nur 1/x Angaben gibt, würde das insofern einfacher, dass die Benutzer weniger Fehler bei der Eingabe der Werte machen können.
Die Felder wären das kleinere Problem - ob nun zwei oder drei Felder angelegt werden, ist schnurz.



Gruß Max

Verfasst: Fr 22.Feb, 2008 09:58
von Holger
Perfekt! Das wäre sehr intressant!

Verfasst: Fr 22.Feb, 2008 13:42
von cback
Hätte noch ne Idee
Etwas seltsam gelöst aber kam mir grad in den Sinn:

Trenne die Eingabe an / auf mit $werte = explode('/', $eingabe);

wenn $werte[1] leer ist (empty) dann weiter wie bisher
wenn $werte[1] nicht leer ist nimmste die Zahl von Werte 1 und mit substr http://www.php.net/substr die letzte Zahl die in $werte[0] steht (ganz hinten) und als rest Rechnungswert dann die zahlen die sonst noch vorne in $werte[0] stehen. Also einmal nur die letzte Ziffer und einmal alles außer der letzten Ziffer. substr kann da mit beiden Varianten arbeiten.

Verfasst: Fr 22.Feb, 2008 13:46
von Holger
Ja, ne, is klar ...
:!:

Habe nichts verstanden.
Aber danke für den Tip!

Verfasst: Fr 22.Feb, 2008 19:14
von oxpus
Ich sags ja: Reguläre Ausdrücke und artverwandte Methoden sind Gehirnzertrümmerer ;)

Verfasst: So 24.Feb, 2008 19:24
von Max
Also.....

Die Zollangaben sind von Natur aus gruselig.


Der erste Wert kann sehr variieren.
Der zweite Wert ist dual basiert, also z.B. 1/2 --> 1/4 --> 1/8 --> 1/16 --> 1/32 usw.
Das kann natürlich auch so aussehen 3/8


Abgesehen davon meinte mein Schwager, dass es Inch/Zoll --> CM und CM--> Inch/Zoll -Umrechner an jeder Ecke gibt. Er würde sich das nicht extra selber programmieren.

Such doch einfach mal im Scriptebereich, ob es das nicht sowieso schon fertig gibt, dann musst Du das halt nur im Forum integrieren.



Gruß Max

Verfasst: So 24.Feb, 2008 19:49
von KeineAhnung
ich weis es ist smalltalk, aber so blühend siehts um die scripte auch nicht aus:

http://www.google.de/search?q=zoll+in+mm+konverter+php :D

Verfasst: So 24.Feb, 2008 20:03
von Holger
Doch, es gibt eine MENGE davon!
In unserem forum wird jedoch in fast jedem dritten Beitrag über diverse mm/Zoll-Angaben gesprochen. Deshalb habe ich einen Button eingebaut, der ein Fenster mit einem Konverter öffnet. Das kam sehr gut an.

Die Konverter im Netz kranken allesamt an der Eingabe "1 1/8", sie wollen alle Dezimale Eingaben haben.


Ahhh! Hier gibt es einen:
http://www.peters1.dk/webtools/conversion.php?sprog=de
Bei Inch dreht der Kalkulator auch durch bei "1 1/8".
Aber bei feet/inches kann man eingeben 1 und 1/8 in den Feldern, dann macht er aus 1/8 0.125.

Verfasst: So 24.Feb, 2008 20:36
von oxpus
Aber bei feet/inches kann man eingeben 1 und 1/8 in den Feldern, dann macht er aus 1/8 0.125.
Ja, und das über gehirnwindungsschädigende reguläre Ausdrücke.

Verfasst: Mo 25.Feb, 2008 13:35
von Holger
Ach kom! SO schädlich ist es bestimmt nicht! :-D

Verfasst: Mo 25.Feb, 2008 18:21
von oxpus
Dann schau Dir mal die bbcodes.php an oder noch besser diesen regulären Ausdruck aus dem phpBB 3 BETA irgendwas für die Feststellung der IP aus dem IPv6 Protokoll:

Code: Alles auswählen

			$ipv6 = '#^(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){5}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:))$#i';
Und das bekomm man auseinander ;)

Verfasst: Mo 25.Feb, 2008 20:37
von Holger
Na, das ist doch eine Kleinigkeit! Äh. Warte mal ... mümmelmümmelmümmel ... naja, soooo auf die Schnelle kriege ich das auch nicht hin ...

LOL!!!

Verfasst: Di 26.Feb, 2008 10:46
von oxpus
Nech ;)