Une fois, j'ai envoyé un bogue causé par 24 octets. Une vérification des quotas de stockage dans une application Laravel a comparé la taille d'un fichier téléchargé à une limite que l'équipe de produits avait écrite à 500 Mo. L'écart entre les deux est d'environ 4,6 %, ce qui est invisible lors des tests et extrêmement visible lorsqu'un client de 512 000 000 octets est rejeté en tant que "trop grand" alors que l'interface utilisateur insiste sur le fait qu'elle est sous la limite.
La conversion d'unités ressemble au problème le plus ennuyeux de l'informatique jusqu'à ce qu'elle corrompt silencieusement quelque chose. Chaque conversion a un facteur défini exact - un pouce est exactement 0,0254 mètres, une livre est exactement 0,45359237 kilogrammes - et la raison pour laquelle nous nous trompons est que nous transportons des approximations arrondies à la place. Alors j'ai construit le Convertisseur d'unités sur toolz.dev Autour des valeurs définies, couvrant les onze catégories que j'ai atteintes, y compris les convertisseurs les plus ignorés : les pixels CSS, les points typographiques et les unités de données binaires contre décimales qui ont causé mon bogue.
tl;dr : Chaque unité d'une catégorie est un multiple fixe d'une unité de base, donc la conversion est un seul multipliage et une division - à l'exception de la température, qui nécessite une transformée affine car Celsius, Fahrenheit, Kelvin et Rankine ont des points zéro différents. le Convertisseur d'unités Couvre la longueur, le poids, la température, la surface, le volume, la vitesse, le temps, les données, la pression, l'énergie et l'angle avec les facteurs standard exacts, indique votre valeur dans chaque unité à la fois et s'exécute entièrement dans votre navigateur.
Comment fonctionne réellement la conversion d'unités ?
Choisissez une unité de base par catégorie. Exprimez toutes les autres unités comme un rapport. La conversion se réduit ensuite à une ligne d'arithmétique :
result = value × (fromUnit.ratio / toUnit.ratio)
Pour la longueur, la base est le mètre. Un centimètre a un rapport de 0,01, un pouce a 0,0254. La conversion de 30 cm en pouces est 30 × 0.01 / 0.0254 = 11.811. C'est l'algorithme complet, et il a une propriété utile : parce que chaque conversion s'effectue à travers l'unité de base, vous ne chaînez jamais d'approximations. La conversion de miles en miles nautiques va mile → mètre → mille nautique dans une seule expression plutôt que par le biais d'une table de recherche de facteurs par paires, chacun avec son propre arrondi.
Les unités de base dans le Convertisseur d'unités sont les SI là où ils existent : mètre, kilogramme, seconde, Pascal, Joule, Radian, mètre carré, mètre par seconde. Le volume utilise le litre et les données utilisent l'octet, à la fois pour la lisibilité plutôt que pour une pureté stricte de SI.
La température est l'exception qui brise le modèle, et il vaut la peine de comprendre pourquoi.
Pourquoi la température est-elle différente de toutes les autres unités ?
Parce que les échelles de température sont atténuer, pas proportionnel. Les centimètres et les pouces sont de la même longueur, rien. Mais zéro Celsius et zéro Fahrenheit ne sont pas la même température, et aucun d'eux n'est "pas de température du tout." Les échelles ont à la fois une taille de pas différente et une origine différente.
Une conversion de température nécessite donc deux opérations, pas une : décaler l'origine, puis l'échelle. Les formules standards :
- °F = (°C × 9/5) + 32
- °C = (°F − 32) × 5/9
- k = °C + 273,15
- °r = k × 9/5
En interne, le convertisseur achemine tout à travers Kelvin, qui est le seul des quatre à avoir un zéro physiquement significatif - zéro absolu, le point où le mouvement thermique s'arrête. Cela donne également un contrôle de validité gratuit : si une conversion produit une valeur de Kelvin négative, l'entrée était inférieure à zéro absolu et n'est pas une température réelle. L'outil le rejette avec une explication plutôt que de retourner des bêtises avec confiance, ce qui est le genre de petite honnêteté qui sépare un outil auquel vous pouvez faire confiance.
Une référence rapide pour les chiffres que les gens recherchent réellement :
| celsius | Fahrenheit | Kelvin | Qu'est-ce que c' |
|---|---|---|---|
| −273,15 °C | −459,67 °F | 0 k | zéro absolu |
| −40 °C | −40 °F | 233,15 k | Où les deux échelles se croisent |
| 0 °C | 32 °F | 273,15 k | L'eau gèle |
| 20 °C | 68 °F | 293,15 k | température ambiante |
| 37 °C | 98,6 °F | 310,15 K | corps humain |
| 100 °C | 212 °F | 373,15 k | L'eau bout au niveau de la mer |
Le crossover -40 est celui qui vaut la peine d'être mémorisé. C'est le seul point où Celsius et Fahrenheit sont d'accord, et cela permet de vérifier la bonne santé mentale sur toute routine de conversion que vous écrivez.
Quelle est la différence entre MB et MIB ?
C'est la conversion qui coûte de l'argent réel et des heures réelles de chasse aux bugs, donc elle mérite sa propre section.
un mégaoctet (Mo) est de 1 000 000 octets, une unité décimale, 10 ⁶. Mebioctet (MIB) est de 1 048 576 octets - une unité binaire, 2²⁰. Les préfixes binaires (Kibi, Mebi, Gibi, Tebi) ont été normalisés par la CEI en 1998 précisément pour mettre fin à l'ambiguïté, et environ la moitié de l'industrie les a ignorés.
Le résultat est un gâchis que tout le monde a ressenti :
| annoncé | Octets réels | Ce que le système d'exploitation montre | Apparemment "perte" |
|---|---|---|---|
| 1 Ko | 1 000 | 0,98 Kio | 2,4 % |
| 1 Mo | 1 000 000 | 0,95 mi mB | 4,6 % |
| 1 Go | 1 000 000 000 | 0,93 Gib | 7,4 % |
| 1 To | 1 000 000 000 000 | 0,91 tib | 9,9 % |
Les fabricants de lecteurs de disques vendent en unités décimales, car la décimale augmente le nombre. Windows signale en unités binaires mais les étiquettes "GB", d'où vient le "mon disque de 1 To" n'a que 931 Go" d'où vient - rien ne manque, l'étiquette est tout simplement erronée. MacOS et la plupart des outils Linux signalent désormais honnêtement la décimale GB. La RAM est toujours binaire, car l'adressage en mémoire est intrinsèquement une puissance de deux. Les vitesses du réseau sont décimales et Mesuré en bits, qui est un troisième axe de confusion : une connexion "100 Mbps" délivre environ 12,5 Mo par seconde, et non 100 mbits de données.
Les règles pratiques que je respecte :
- en code, travaillez dans octets. Convertissez uniquement sur la couche d'affichage.
- Lorsque vous écrivez une limite dans une spécification, écrivez le nombre d'octets entre parenthèses : "500 Mo (500 000 000 octets)."
- Si votre contrat API indique MB, choisissez Decimal, car c'est ce que signifie l'étiquette en dehors de Windows.
- Ne présumez jamais que l'autre système est d'accord avec le vôtre. Vérifiez.
le Convertisseur d'unités Répertorie les deux familles côte à côte dans la catégorie des données, afin que vous puissiez voir l'écart plutôt que de le deviner. Si vous travaillez avec des valeurs d'octet brutes et que vous souhaitez les voir au niveau du bit, le traducteur binaire est l'outil compagnon.
De quelles conversions les gens ont-ils réellement besoin ?
Après avoir regardé ce qui est recherché et ce que j'atteins pour moi-même, la liste est courte et prévisible. Voici ceux qui méritent d'être connus à froid, avec les facteurs exacts plutôt que les approximations :
| transformation | Facteur exact | Mathématiques mentales rapides |
|---|---|---|
| cm → en | ÷ 2,54 | Réduisez-le en deux, puis soustrayez 20% |
| Dans → cm | × 2,54 | Doublez-le, ajoutez 25 % |
| km → MI | × 0,621371 | multiplier par 0,6, ajouter un peu |
| MI → km | × 1.609344 | Ajouter 60 % |
| kg → lb | × 2.20462262 | Doublez-le, ajoutez 10 % |
| lb → kg | × 0,45359237 | Réduisez-le en deux, soustrayez 10% |
| °C → °F | × 1,8 + 32 | Doublez-le, ajoutez 30 (rugueux) |
| km/h → MPH | × 0,621371 | Même facteur que KM → MI |
| l → US Gal | ÷ 3,785411784 | Diviser par 4, ajouter un peu |
| Mo → MIB | ÷ 1.048576 | Soustrayez environ 4,6 % |
La colonne Mental-Math est délibérément rugueuse – assez bonne pour vérifier un résultat, pas assez bonne pour être expédiée. La distinction est importante : "doublez-le et ajoutez 10 %" transforme 70 kg en 154 lb, ce qui est en droit de moins d'un gramme. Mais appliqué à un envoi de 2 000 kg, il dérive et appliqué à un calcul de dosage, il est inacceptable. Utilisez l'heuristique pour saisir un ordre de grandeur incorrect; utilisez le facteur exact pour la réponse réelle.
Ces facteurs de conversion sont-ils exacts ou arrondis ?
Exact, et c'est un fait plus intéressant qu'il n'y paraît.
Depuis l'accord international de chantier et de livre de 1959, les unités impériales sont défini en termes de mesures métriques. Le pouce n'est pas mesuré par rapport au compteur, il est déclaré à 0,0254 m. La livre est exactement de 0,45359237 kg. Le gallon américain est exactement de 3,785411784 L. Il n'y a aucune incertitude expérimentale dans ces chiffres - ce sont des définitions, comme le fait qu'il y a 60 secondes par minute.
Il en va de même pour les catégories :
- 1 acre = 4046,8564224 m² (exactement)
- 1 psi = 6894,757293168 PA (exactement, à partir de la livre et du pouce)
- 1 BTU = 1055.05585262 J (la définition de la table internationale)
- 1 kWh = 3 600 000 j (exactement, car un watt est un joule par seconde)
- 1 mille marin = 1852 m (exactement, par accord international en 1929)
Quelques unités sont véritablement des conventions plutôt que des définitions, et des outils honnêtes le disent. "Mois" n'est pas une quantité fixe - le convertisseur utilise 30 jours, car vous devez choisir quelque chose, et une "année" de 365 jours ignore les années bissextiles. Mach dépend de la température et de la pression de l'air; le convertisseur utilise le chiffre de la mer d'environ 343 m/s à 20 °C. Si vous avez besoin d'un calcul de date précis au lieu d'un facteur nominal, utilisez le Calculateur de différence de date, qui compte les jours civils réels plutôt que de multiplier par 30.
le Convertisseur d'unités Stocke les valeurs définies et arrondit uniquement les exposer, à huit chiffres significatifs. L'arithmétique elle-même est effectuée avec une double précision, de sorte que les conversions enchaînées n'accumulent pas d'erreur visible.
Puis-je convertir des pixels CSS en millimètres ?
Oui, et c'est l'une des conversions que j'utilise le plus en tant que développeur frontal, c'est pourquoi il est dans la catégorie Longueur aux côtés des unités physiques.
La spécification CSS définit le Pixel de référence comme 1/96 de pouce. Cela fait 96 px exactement 25,4 mm, ou 1 px ≈ 0,2646 mm. Cela signifie également que la relation entre PX et Pt (le point typographique, 1/72 pouce) est fixe : 1 pt = 1,333 … px et 12 pt = 16 px, c'est pourquoi 16 px est la taille de police du corps par défaut dans chaque navigateur - c'est un texte à 12 points.
La mise en garde mérite une affirmation clairement : il s'agit d'un référence Pixel, pas un pixel de l'appareil. Sur un affichage à haut DPI, un pixel CSS correspond à deux ou trois pixels physiques. Sur un téléphone, la mise à l'échelle de la fenêtre modifie à nouveau la relation. Donc, PX → MM est tout à fait correct lorsque vous mappez une conception d'impression sur une mise en page Web (une page A4 est de 210 mm de large, soit 793,7 cs px), et c'est une approximation utile plutôt qu'une vérité physique lorsque vous parlez de ce que votre œil voit réellement sur un écran de rétine.
Si vous créez des agencements et des jetons de conception, cette conversion s'ajoute à la cueillette de couleurs Couvre la plupart des travaux de traduction entre les spécifications imprimées d'un designer et une implémentation CSS.
Cas d'utilisation courants
Développement et DevOps. Limites de taille de fichiers, quotas de stockage, tailles de cache, budgets de bande passante. La distinction Mb/MiB est celle qui mord, et elle mord aux endroits où un numéro erroné rejette silencieusement une requête valide au lieu de lancer une erreur que vous remarqueriez.
Transfert front-end et design. PX, PT, MM et pouces lorsqu'un design provient d'un outil orienté impression, ou lorsque vous produisez quelque chose qui sera à la fois visualisé et imprimé.
Cuisine et recettes. US Tasses, cuillères à soupe et onces contre grammes et millilitres. Notez que les conversions de volume ici sont d'usage américain - la pinte et le gallon impériaux sont des entrées distinctes car une pinte britannique est de 568 mL, tandis qu'une pinte américaine est de 473 mL, une différence de 20 % qui a ruiné de nombreux gâteaux.
Voyage et vie de tous les jours. km en milles, kg en livres, Celsius à Fahrenheit, litres en gallons. La majorité peu glamour du trafic d'unités-convertisseurs et la raison pour laquelle l'outil est par défaut une paire sensible par catégorie plutôt que de vous le faire configurer.
Sciences et ingénierie. Pression en psi, bar et pascals, énergie en joules, calories, kWh et BTU, angles en degrés, radians et gradins. Partout où vous vous déplacez entre un papier SI et une fiche technique impériale.
Remise en forme et nutrition. Les kilocalories (la "calorie" sur une étiquette alimentaire est en fait un kilocalorie) à Joules, kilogrammes en livres et en pierres, kilomètres en kilomètres pour les calculs de rythme. Si vous convertissez des pourcentages d'un objectif quotidien plutôt que d'unités, le Calculateur de pourcentage est l'autre moitié de ce flux de travail.
Pour un aperçu plus large des utilitaires basés sur un navigateur, j'ai récupéré ceux que j'utilise quotidiennement dans La boîte à outils du développeur Web.
Pourquoi un convertisseur basé sur un navigateur est-il important ?
Pour un convertisseur d'unités, l'argument de confidentialité est plus faible que celui d'un outil PDF, par exemple, personne ne vous fera de compromis en apprenant que vous avez converti 30 cm en pouces. Mais deux choses font toujours de l'exécution côté client la bonne architecture.
Le premier est la vitesse. Il n'y a pas de voyage aller-retour. Le résultat est mis à jour sur chaque frappe car l'arithmétique se produit à quelques microsecondes, et non sur un réseau. Un convertisseur soutenu par un serveur qui rebondit votre entrée et montre qu'un spinner est plus lent que de faire la multiplication dans votre tête.
La seconde est qu'il continue de fonctionner quand rien d'autre ne le fait. Chargez la page une fois et fonctionne hors ligne — dans un avion, dans un train, dans un centre de données sans WiFi invité, dans une salle de conférence dont le réseau vous déteste. Chaque outil sur toolz.dev est construit de cette manière exprès, et le raisonnement derrière ce choix - pour les outils où il vous protège véritablement - est présenté dans Pourquoi vos données ne devraient jamais quitter votre navigateur.
FAQ
Comment convertir cm en pouces ?
Divisez le nombre de centimètres par 2,54, car un pouce est défini exactement comme 2,54 cm. Donc 30 cm ÷ 2,54 = 11,811 pouces et 100 cm ÷ 2,54 = 39,37 pouces. La relation est une définition plutôt qu'une mesure, fixée par l'accord international de chantier et de livre de 1959, donc elle est exacte plutôt qu'approximative.
Comment convertir KG en lbs ?
Multipliez les kilogrammes par 2,20462262, puisque une livre est définie comme exactement 0,45359237 kg. Cela fait 70 kg égal à 154,32 lb. Le raccourci mental – double et ajoute 10 % – vous permet de moins d'une fraction de livre et convient à un contrôle de santé mentale, mais utilisez le facteur exact pour tout ce qui doit être juste, comme les poids d'expédition ou les calculs de dosage.
Quelle est la formule pour convertir Celsius en Fahrenheit ?
°F = (°C × 9/5) + 32. Donc, 25 °C est de 77 °F et 100 ° C est de 212 °F. Pour l'inverser : °C = (°F − 32) × 5/9. La température nécessite à la fois une multiplication et un décalage car les deux échelles ont des points zéro différents, contrairement à la longueur ou au poids, lorsqu'un seul multiplicateur est suffisant.
Quelle est la différence entre MB et MIB ?
Un mégaoctet (Mo) est de 1 000 000 octets, tandis qu'un Mebioctet (MiB) est de 1 048 576 octets, ou 1 024 ². L'écart est d'environ 4,6 % et il augmente à chaque pas : un gigaoctet et un gibioctet diffèrent de 7,4 %. Les fabricants de disques font de la publicité en MB et en Go, tandis que Windows rapporte en unités binaires mais les étiquette GB, c'est pourquoi un lecteur de 1 To apparaît à environ 931 Go. Rien ne manque - les deux systèmes comptent simplement différemment.
Combien de kilomètres sont dans un mile?
Un kilomètre est exactement 1,609344 kilomètres, donc un kilomètre est à environ 0,621371 miles. Une course de 5 km est de 3,107 miles, un 10 km est de 6,214 miles et un marathon à 42,195 km est de 26,219 miles. Le même facteur de 0,621371 convertit le km/h en mi/h, car les deux sont identiques à la distance par heure.
Les facteurs de conversion sont-ils exacts ou approximatifs ?
Ce sont les valeurs exactes définies des normes internationales : 1 po = 0,0254 m, 1 lb = 0,45359237 kg, 1 gal US = 3,785411784, 1 mille marin = 1 852 m. Seul le résultat affiché est arrondi à huit chiffres significatifs, ce qui permet de le rendre lisible sans introduire de défaut. Les quelques unités véritablement conventionnelles - "mois" comme 30 jours, Mach au niveau de la mer - sont étiquetées comme telles.
Puis-je convertir des pixels CSS en millimètres ?
Oui. La spécification CSS définit le pixel de référence comme 1/96 de pouce, ce qui fait 96 px exactement 25,4 mm. Cette relation est ce que vous voulez lors du mappage d'une conception d'impression sur une mise en page Web, et c'est pourquoi 12 pt équivaut à 16 px. Gardez à l'esprit qu'il décrit le pixel de référence CSS, et non les pixels physiques sur un écran à haut DPI, où un pixel CSS peut couvrir deux ou trois pixels de périphérique.
Mes données sont-elles envoyées sur un serveur lorsque je convertis des unités ?
non . Chaque conversion est calculée en JavaScript dans votre navigateur, c'est pourquoi le résultat se met à jour instantanément lorsque vous tapez plutôt qu'après un aller-retour sur le réseau. Rien de transmis, de journalisation ou de stockage, et une fois la page chargée, le convertisseur continue de fonctionner sans aucune connexion réseau.
