Ich habe einmal einen Fehler durch 24 Byte verschickt. Eine Speicherkontingentprüfung in einer Laravel-App verglich eine hochgeladene Datei mit einer Grenze, die das Produktteam als "500 MB" geschrieben hatte. Der Uploader meldete Megabyte als MIB. Die Grenze wurde in Dezimal MB durchgesetzt. Die Lücke zwischen den beiden beträgt etwa 4,6%, was beim Testen unsichtbar ist und sehr sichtbar ist, wenn ein Kunde mit 512.000.000 Byte-Exporten als "zu groß" zurückgewiesen wird, während die Benutzeroberfläche darauf besteht, dass sie unter der Grenze liegt.
Die Einheitenkonvertierung scheint das langweiligste Problem beim Rechnen zu sein, bis sie still etwas fehlerhaft ist. Jede Umrechnung hat einen genau definierten Faktor - ein Zoll ist genau 0,0254 Meter, ein Pfund genau 0,45359237 Kilogramm - und der Grund, warum wir sie falsch verstehen, ist, dass wir stattdessen abgerundete Approximationen herumtragen. Also habe ich das gebaut Einheitenkonverter auf toolz.dev Um die definierten Werte herum, die die elf Kategorien abdecken, die ich tatsächlich erreichen, einschließlich derjenigen, die die meisten Konverter ignorieren: CSS-Pixel, typografische Punkte und die Dateneinheiten binär-gegen-dezimal, die meinen Fehler verursacht haben.
tl; dr: Jede Einheit in einer Kategorie ist ein festes Vielfaches einer Basiseinheit, daher ist die Umwandlung ein einzelnes Multiplizieren und Teilen - außer der Temperatur, die eine affine Transformation erfordert, da Celsius, Fahrenheit, Kelvin und Rankine unterschiedliche Nullpunkte haben. der Einheitenkonverter Deckt Länge, Gewicht, Temperatur, Fläche, Volumen, Geschwindigkeit, Zeit, Daten, Druck, Energie und Winkel mit exakten Standardfaktoren ab, zeigt Ihren Wert in jeder Einheit auf einmal und läuft vollständig in Ihrem Browser.
Wie funktioniert die Einheitenumstellung eigentlich?
Wählen Sie eine Basiseinheit pro Kategorie. Drücken Sie jede andere Einheit als Verhältnis dazu aus. Die Konvertierung reduziert sich dann auf eine Zeile der Arithmetik:
result = value × (fromUnit.ratio / toUnit.ratio)
Bei der Länge ist die Basis das Messgerät. Ein Zentimeter hat ein Verhältnis von 0,01, ein Zoll hat 0,0254. 30 cm in Zoll umrechnen ist 30 × 0.01 / 0.0254 = 11.811drohen Das ist der gesamte Algorithmus und hat eine nützliche Eigenschaft: Da jede Konvertierung durch die Basiseinheit verläuft, verketten Sie niemals Annäherungen. Umrechnen von Meilen in Seemeilen geht Meilen → Meter → Seemeile in einem Ausdruck und nicht durch eine Nachschlagetabelle paarweiser Faktoren, jeder mit einer eigenen Rundung.
Die Basiseinheiten in der Einheitenkonverter sind die SI, in denen sie existieren: Meter, Kilogramm, Sekunde, Pascal, Joule, Radian, Quadratmeter, Meter pro Sekunde. Volume verwendet den Liter und Daten verwenden das Byte, sowohl für die Lesbarkeit als für die strikte SI-Reinheit.
Die Temperatur ist die Ausnahme, die das Modell bricht, und es lohnt sich zu verstehen, warum.
Warum unterscheidet sich die Temperatur von jeder anderen Einheit?
Weil Temperaturskalen sind affin, nicht anteilmäßigdrohen Null Zentimeter und null Zoll sind gleich lang – nichts. Aber Null Celsius und Null Fahrenheit sind nicht die gleiche Temperatur, und keines von ihnen ist "keine Temperatur" "Die Skalen haben sowohl eine unterschiedliche Schrittgröße als auch einen anderen Ursprung.
Eine Temperaturumwandlung erfordert also zwei Operationen, nicht einen: den Ursprung verschieben und dann skalieren. Die Standardformeln:
- °F = (°C × 9/5) + 32
- °C = (°F − 32) × 5/9
- K = °C + 273,15
- °R = K × 9/5
Intern führt der Konverter alles durch Kelvin, der der einzige der vier mit einem physikalisch bedeutungsvollen Nullpunkt ist - absoluter Nullpunkt, der Punkt, an dem die thermische Bewegung aufhört. Das gibt auch eine kostenlose Gültigkeitsprüfung: Wenn eine Konvertierung einen negativen Kelvin-Wert erzeugt, lag der Eingang unter dem absoluten Nullpunkt und ist keine reale Temperatur. Das Tool lehnt es mit einer Erklärung ab, anstatt den Unsinn zuversichtlich zurückzugeben. Dies ist die Art von kleiner Ehrlichkeit, die ein Werkzeug trennt, dem Sie vertrauen können, von einem, das Sie noch einmal überprüfen müssen.
Eine schnelle Referenz zu den Zahlen, die tatsächlich nachschlagen:
| Celsius | Fahrenheit | Kelvin | Was es ist |
|---|---|---|---|
| −273,15 °C | −459,67 ° F | 0 k | Absolute Null |
| −40 °C | –40 ° F | 233,15 K | wo die beiden Schuppen kreuzen |
| 0 ° C | 32 ° F | 273,15 K | Wasser friert ein |
| 20 °C | 68 ° F | 293,15 K | Raumtemperatur |
| 37 ° C | 98,6 ° F | 310,15 K | Menschliche Körper |
| 100 °C | 212 ° F | 373,15 K | Wasser kocht auf Meereshöhe |
Der −40 Crossover ist derjenige, der sich merken sollte. Es ist der einzige Punkt, an dem Celsius und Fahrenheit einig sind, und es macht eine gute Überprüfung der Conversion-Routine, die Sie schreiben.
Was ist der Unterschied zwischen MB und MIB?
Dies ist die Umstellung, die echtes Geld und echte Bug-Jagdstunden kostet, also verdient sie einen eigenen Abschnitt.
ein Megabyte (MB) 1.000.000 Byte – eine Dezimaleinheit, 10⁶. Mebibyte (MIB) 1.048.576 Byte - eine binäre Einheit, 2²⁰. Die binären Präfixe (Kibi, Mebi, Gibi, Tebi) wurden 1998 von der IEC standardisiert, um die Mehrdeutigkeit zu beenden, und ungefähr die Hälfte der Industrie ignorierte sie.
Das Ergebnis ist ein Chaos, das jeder empfunden hat:
| beworben | Tatsächliche Bytes | Was das Betriebssystem zeigt | scheinbar "Verlust" |
|---|---|---|---|
| 1 kB | 1.000 | 0,98 Kib | 2,4% |
| 1 MB | 1.000.000 | 0,95 MiB | 4,6% |
| 1 GB | 1.000.000.000 | 0,93 GiB | 7,4% |
| 1 TB | 1.000.000.000.000 | 0,91 tib | 9,9% |
Die Hersteller von Antriebsherstellern verkaufen in Dezimaleinheiten, weil die Dezimalzahl die Zahl größer macht. Windows meldet in Binäreinheiten, kennzeichnet sie aber "GB", dort kommt das "Mein 1-TB-Laufwerk hat nur 931 GB" - Beschwerde kommt von - nichts fehlt, das Etikett ist einfach falsch. MacOS und die meisten Linux-Tools berichten jetzt ehrlich GB. RAM ist immer binär, da die Speicheradressierung von Natur aus eine Zweierpotenz ist. Netzwerkgeschwindigkeiten sind dezimal und Gemessen in Bits, was eine dritte Verwirrungsachse ist: Eine Verbindung "100 Mbps" liefert ungefähr 12,5 MB pro Sekunde, nicht 100.
Die praktischen Regeln, die ich befolge:
- im Code arbeiten in Bytesdrohen Nur auf der Anzeigeebene umwandeln.
- Wenn Sie ein Limit in eine Spezifikation schreiben, schreiben Sie die Byte-Anzahl in Klammern: "500 MB (500.000.000 Bytes))"
- Wenn Ihr API-Vertrag MB anzeigt, wählen Sie Dezimal aus, da das Etikett außerhalb von Windows bedeutet.
- Nehmen Sie niemals an, dass das andere System mit Ihrem übereinstimmt. simulieren
der Einheitenkonverter Listet beide Familien nebeneinander in der Datenkategorie auf, sodass Sie die Lücke sehen können, anstatt sie zu erraten. Wenn Sie mit RAW-Bytewerten arbeiten und diese auf Bitebene sehen möchten, Binärübersetzer ist das Begleitwerkzeug.
Welche Konversionen brauchen die Leute eigentlich?
Nachdem ich gesehen habe, was gesucht wird und was ich für mich selbst erreicht, ist die Liste kurz und vorhersehbar. Hier sind diejenigen, die es wert sind, kalt zu sein, mit den genauen Faktoren und nicht den Näherungsmöglichkeiten:
| Umwandlung | genauer Faktor | Schnelle mentale Mathematik |
|---|---|---|
| cm → in | ÷ 2,54 | halbieren Sie es und ziehen Sie dann 20% ab |
| in → cm | × 2,54 | Verdoppeln Sie es, fügen Sie 25% hinzu |
| km → mi | × 0,621371 | Multiplizieren Sie mit 0,6, fügen Sie ein Bit hinzu |
| MI → km | × 1.609344 | 60% hinzufügen |
| kg → lb | × 2.20462262 | Verdoppeln Sie es, fügen Sie 10% hinzu |
| lb → kg | × 0,45359237 | halbieren, subtrahieren 10% |
| °C → °F | × 1,8 + 32 | Verdoppeln Sie es, fügen Sie 30 (rau) hinzu |
| km/h → mph | × 0,621371 | Gleicher Faktor wie km → MI |
| L → US Gal | ÷ 3.785411784 | Durch 4 teilen, ein bisschen hinzufügen |
| MB → MIB | ÷ 1.048576 | Subtrahieren Sie etwa 4,6% |
Die Mental-Math-Kolumne ist absichtlich rau - gut genug, um ein Ergebnis zu überprüfen, das nicht gut genug ist, um zu versenden. Die Unterscheidung zählt: "Doppeln Sie es und addieren Sie 10%" verwandelt 70 kg in 154 lb, was auf ein Gramm zutrifft. Aber auf eine 2.000 kg schwere Sendung treibt es ab und bei einer Dosierungsberechnung ist es nicht akzeptabel. Verwenden Sie die Heuristik, um eine falsche Größenordnung zu erfassen, und verwenden Sie den genauen Faktor für die tatsächliche Antwort.
Sind diese Umrechnungsfaktoren genau oder abgerundet?
Genau, und das ist eine interessantere Tatsache, als es sich anhört.
Seit dem internationalen Yard- und Pfund-Abkommen von 1959 sind die imperialen Einheiten definiert in Bezug auf metrische. Der Zoll wird nicht gegen den Messgerät gemessen, sondern genau 0,0254 m. Das Pfund beträgt genau 0,45359237 kg. Die US-Gallone beträgt genau 3.785411784 L. Es gibt keine experimentelle Unsicherheit in diesen Zahlen - es handelt sich um Definitionen, wie die Tatsache, dass es 60 Sekunden in einer Minute gibt.
Das gleiche gilt für die Kategorien:
- 1 Hektar = 4046,8564224 m² (genau)
- 1 psi = 6894.757293168 Pa (genau nach Pfund und Zoll)
- 1 BTU = 1055.05585262 J (die Definition der internationalen Tabelle)
- 1 kWh = 3.600.000 J (genau, da ein Watt ein Joule pro Sekunde ist)
- 1 Seemeile = 1852 m (genau durch internationales Abkommen im Jahr 1929)
Einige Einheiten sind wirklich Konventionen und nicht Definitionen, und ehrliche Werkzeuge sagen es. "Monat" ist keine feste Menge - der Konverter benötigt 30 Tage, weil man etwas auswählen muss, und ein "Jahr" von 365 Tagen ignoriert Schaltjahre. Der Mach-Anteil ist abhängig von Lufttemperatur und Druck, der Umrichter verwendet die Meeresspiegel-Wert von ca. 343 m/s bei 20 °C. Wenn Sie eine genaue Datumsarithmetik anstelle eines Nennfaktors benötigen, verwenden Sie die Datumsdifferenzrechner, die die tatsächlichen Kalendertage zählt, anstatt mit 30 zu multiplizieren.
der Einheitenkonverter speichert die definierten Werte und rundet nur anzeigen, zu acht signifikanten Ziffern. Die Arithmetik selbst erfolgt mit voller doppelter Genauigkeit, so dass verkettete Konvertierungen keinen sichtbaren Fehler ansammeln.
Kann ich CSS-Pixel in Millimeter konvertieren?
Ja, und es ist eine der Konvertierungen, die ich am häufigsten als Front-End-Entwickler verwende, weshalb sie neben den physischen Einheiten in der Länge der Kategorie liegt.
Die CSS-Spezifikation definiert die Referenzpixel als 1/96 Zoll. Das macht 96 px genau 25,4 mm oder 1 px ≈ 0,2646 mm. Dies bedeutet auch, dass die Beziehung zwischen px und pt (der typografische Punkt 1/72 Zoll) behoben ist: 1 pt = 1,333… px und 12 pt = 16 px, weshalb 16px die Standardgröße des Körpers in jedem Browser ist - es ist 12-Punkt-Text.
Die Einschränkung wert, klar zu sagen: Dies ist eine Bemerkung Pixel, kein Gerätepixel. Auf einem High-DPI-Display wird ein CSS-Pixel auf zwei oder drei physikalische Pixel abgebildet. Auf einem Telefon ändert die Skalierung des Ansichtsfensters die Beziehung erneut. PX → MM ist also genau richtig, wenn Sie ein Druckdesign auf ein Weblayout zuordnen (eine A4-Seite ist 210 mm breit, was 793,7 CSS px ist), und es ist eher eine nützliche Annäherung als eine physische Wahrheit, wenn Sie über das sprechen, was Ihr Auge tatsächlich auf einem Netzhautbildschirm sieht.
Wenn Sie Layouts und Design-Token erstellen, wird diese Konvertierung plus die Farbpflücker Deckt den größten Teil der Übersetzungsarbeit zwischen einer druckorientierten Spezifikation eines Designers und einer CSS-Implementierung ab.
Häufige Anwendungsfälle
Entwicklung und DevOps. Dateigrößenbeschränkungen, Speicherkontingente, Cachegrößen, Bandbreitenbudgets. Die MB / MIB-Unterscheidung ist diejenige, die beißt, und sie beißt an Orten, an denen eine falsche Nummer eine gültige Anfrage stillschweigend ablehnen würde, anstatt einen Fehler zu werfen, den Sie bemerken würden.
Front-End und Design-Handoff. PX, PT, MM und INCHE, wenn ein Design von einem druckorientierten Werkzeug stammt oder wenn Sie etwas produzieren, das sowohl angesehen als auch gedruckt wird.
Kochen und Rezepte. US-Tassen, Esslöffel und Unzen im Vergleich zu Gramm und Milliliter. Beachten Sie, dass die Volumenumrechnungen hier US-üblich sind - das imperiale Pint und die Gallone sind separate Einträge, da ein britisches Pint 568 ml beträgt, während ein US-Pint 473 ml beträgt, eine 20% ige Differenz, die viele Kuchen ruiniert hat.
Reisen und Alltag. km zu Meilen, kg zu Pfund, Celsius bis Fahrenheit, Liter zu Gallonen. Die unglamouröse Mehrheit des Einheits-Wandler-Verkehrs und der Grund, warum das Tool standardmäßig ein vernünftiges Paar pro Kategorie verwendet, anstatt es zu konfigurieren.
Wissenschaft und Technik. Druck in psi, bar und Pascal; Energie in Joule, Kalorien, kWh und BTU; Winkel in Grad, Bogen und Gradier. Überall, wo Sie zwischen einem SI-Papier und einem imperialen Datenblatt wechseln.
Fitness und Ernährung. Kilokalorien (die "Kalorien" auf einem Lebensmitteletikett ist eigentlich eine Kilokalorie) zu Joule, Kilogramm zu Pfund und Steinen, Kilometer zu Meilen für Tempoberechnungen. Wenn Sie Prozentsätze eines täglichen Ziels anstelle von Einheiten umwandeln, wird die Prozentualer Rechner ist die andere Hälfte dieses Workflows.
Um einen umfassenderen Blick darauf zu werfen, welche browserbasierten Dienstprogramme es wert sind, in Reichweite zu bleiben, habe ich die verwendet, in denen ich täglich verwende Das Toolkit des Webentwicklersdrohen
Warum spielt ein browserbasierter Konverter eine Rolle?
Für einen Einheitenkonverter ist das Datenschutzargument schwächer als beispielsweise für ein PDF-Tool - niemand wird Sie kompromittieren, indem er lernt, dass Sie 30 cm in Zoll umgewandelt haben. Zwei Dinge machen jedoch immer noch die clientseitige Ausführung zur richtigen Architektur.
Der erste ist Geschwindigkeit. Es gibt keine Rundreise. Das Ergebnis wird bei jedem Tastendruck aktualisiert, da die Arithmetik einige Mikrosekunden entfernt stattfindet, nicht über ein Netzwerk. Ein servergestützter Konverter, der Ihre Eingabe entprellt und zeigt, dass ein Spinner langsamer ist als die Multiplikation in Ihrem Kopf.
Das zweite ist, dass es weiter funktioniert, wenn nichts anderes funktioniert. Laden Sie die Seite einmal und sie läuft offline - in einem Flugzeug, in einem Zug, in einem Rechenzentrum ohne Gäste-WLAN in einem Konferenzraum, dessen Netzwerk Sie hasst. Jedes Werkzeug auf toolz.dev wird absichtlich so gebaut, und die Gründe für diese Wahl - für die Werkzeuge, bei denen Sie wirklich geschützt werden - ist dargelegt Warum Ihre Daten Ihren Browser niemals verlassen solltendrohen
FAQ
Wie konvertiere ich cm in Zoll?
Teilen Sie die Anzahl der Zentimeter durch 2,54, da ein Zoll genau 2,54 cm definiert ist. Also 30 cm ÷ 2,54 = 11,811 Zoll und 100 cm ÷ 2,54 = 39,37 Zoll. Die Beziehung ist eher eine Definition als eine Messung, die durch die internationale Yard- und Pfund-Vereinbarung von 1959 festgelegt wurde, also ist sie eher genau als ungefähr.
Wie wandel ich kg in lbs um?
Multiplizieren Sie Kilogramm mit 2,20462262, da ein Pfund genau 0,45359237 kg definiert ist. Das macht 70 kg gleich 154,32 lb. Die mentale Abkürzung - doppelte und addierte 10% - bringt Sie innerhalb eines Bruchteils eines Pfunds und ist in Ordnung für eine Sanity Check, aber verwenden Sie den genauen Faktor für alles, was richtig sein muss, wie z. B. Versandgewichte oder Dosierungsberechnungen.
Was ist die Formel, um Celsius in Fahrenheit umzuwandeln?
° F = (°C × 9/5) + 32. 25 °C sind also 77 °F und 100 °C 212 °F. Um es umzukehren: ° C = (°F - 32) × 5/9. Die Temperatur benötigt sowohl eine Multiplikation als auch einen Offset, da die beiden Skalen unterschiedliche Nullpunkte haben, im Gegensatz zu Länge oder Gewicht, wenn ein einzelner Multiplikator ausreicht.
Was ist der Unterschied zwischen MB und MIB?
Ein Megabyte (MB) beträgt 1.000.000 Byte, während ein Mebibyte (MIB) 1.048.576 Byte oder 1024² ist. Die Lücke liegt bei 4,6% und wächst mit jedem Schritt nach oben: Ein Gigabyte und ein Gibibyte unterscheiden sich um 7,4%. Die Hersteller von Laufwerken werben in Dezimal MB und GB, während Windows in Binäreinheiten meldet, sie jedoch GB kennzeichnet, weshalb ein 1-TB-Laufwerk als ungefähr 931 GB angezeigt wird. Es fehlt nichts – die beiden Systeme zählen einfach anders.
Wie viele Kilometer sind in einer Meile?
Eine Meile ist genau 1,609344 Kilometer, also ein Kilometer ungefähr 0,621371 Meilen. Eine 5-km-Laufung ist 3,107 Meilen, eine 10 km ist 6,214 Meilen und ein Marathon bei 42,195 km 26,219 Meilen. Der gleiche Faktor 0,621371 wandelt km / h in mph um, da beide das gleiche Verhältnis für die Entfernung pro Stunde haben.
Sind die Umrechnungsfaktoren genau oder ungefähr?
Es sind die genau definierten Werte aus den internationalen Normen: 1 in = 0,0254 m, 1 lb = 0,45359237 kg, 1 US-Gal = 3,785411784 L, 1 Seemeile = 1852 m. Nur das angezeigte Ergebnis wird auf acht bedeutenden Stellen gerundet, die ohne Einleitungsfehler lesbar bleiben, die Sie jemals bemerken würden. Die wenigen wirklich konventionellen Einheiten - "Monat" als 30 Tage Mach auf Meereshöhe - sind als solche gekennzeichnet.
Kann ich CSS-Pixel in Millimeter konvertieren?
Ja. Die CSS-Spezifikation definiert das Referenzpixel als 1/96 Zoll, was 96 px genau 25,4 mm ergibt. Diese Beziehung ist das, was Sie wollen, wenn Sie ein Druckdesign auf ein Web-Layout zuordnen, und deshalb entspricht 12 PT 16 Pixel. Beachten Sie, dass es das CSS-Referenzpixel beschreibt, nicht die physikalischen Pixel auf einem Bildschirm mit hoher DPI, bei dem ein CSS-Pixel zwei oder drei Gerätepixel abdecken kann.
Werden meine Daten an einen Server gesendet, wenn ich Einheiten konvertiere?
kein drohen Jede Konvertierung wird in Ihrem Browser in Javascript berechnet. Deshalb wird das Ergebnis auch sofort aktualisiert, während Sie eingeben und nicht nach einer Netzwerk-Rundreise. Nichts, das Sie eingeben, wird übertragen, protokolliert oder gespeichert, und sobald die Seite geladen ist, funktioniert der Konverter immer ohne Netzwerkverbindung.
