Command Palette

Search for a command to run...

单位转换器:长度、重量、温度和数据的精确转换

单位转换器:长度、重量、温度和数据的精确转换

T
Toolz Team
|Jul 16, 2026|17 最小读数

转换器 合集的一部分

单位本身的定义见 SI 手册并且导致该特定参数的二进制前缀 - kibi、mebi、gibi - in IEC 80000-13

24字节导致的bug我曾经发过一次Laravel应用中的存储配额检查将上传的文件's大小与产品团队写为"500 MB的限值进行了比较"上传者将兆字节报告为MiB,该限值以十进制MB强制执行,两者之间的差距约为4.6%,这在测试中是不可见的,当客户's 512,000,000字节导出被拒绝为"太大"而UI坚持其在限值下。

单位转换看起来像是计算中最无聊的问题,直到它默默地破坏某些东西。每次转换都有一个精确定义的因子 - 一英寸是 完全正确 0.0254米,一磅为 完全正确 0.45359237公斤-而我们之所以弄错它们,是因为我们转而携带了圆角近似值。所以我构建了 单向转换器 在[toolz。dev](/围绕定义的值,涵盖了我实际达到的十一个类别,包括大多数转换器忽略的类别:css像素,排版点,以及导致我的错误的二进制与十进制数据单元。

TL;博士: 范畴中的每个单位都是一个基本单位的固定倍数,因此转换是单个乘除法 - 除了温度,它需要仿射变换,因为摄氏度、华氏度、开尔文和朗肯的零点不同 单向转换器 涵盖长度、重量、温度、面积、体积、速度、时间、数据、压力、能量和角度,并具有精确的标准因素,同时显示每个单元的值,并完全在浏览器中运行。

单位转换实际上如何工作?

Pick一个类别一个基单位。把其他单位都表示成与它的比值。转换再减少到一行算术:

result = value × (fromUnit.ratio / toUnit.ratio)

对于长度,底座是米。厘米的比率为 0.01,英寸的比率为 0.0254。将 30 厘米换算为英寸 30 × 0.01 / 0.0254 = 11.811。那就是整个算法,它有一个有用的属性:因为每个转换路线通过基本单位,你永远不会链近似值。将英里转换为海里是一个表达式,而不是通过成对因子的查找表,每个因子都有自己的舍入。

中的基本单位 单向转换器 是SI的那些存在的地方:米,千克,秒,帕斯卡,焦耳,弧度,平方米,每秒米体积使用升,数据使用字节,两者都是为了可读性而不是严格的SI纯度。

温度是打破模型的例外,值得理解原因。

为什么温度与其他单位不同?

因为温度尺度是 仿射不是 比例.零厘米和零英寸的长度是一样的- 没什么,但是零摄氏度和零华氏度不是同一个温度,而且两者都不是"完全没有温度。" 鳞片既有不同的步长,又有不同的起源。

So一个温度转换需要两个操作, 而不是一个:移位原点, 然后缩放标准公式:

  • °F = (°C × 9/5) + 32
  • °C = (°F − 32) × 5/9
  • K = °C + 273.15
  • °R = K × 9/5

在内部,转换器通过开尔文路由所有内容,开尔文是四个工具中唯一一个具有物理意义的零 - 绝对零,即热运动停止的点。这也给出了免费的有效性检查:如果转换产生负开尔文值,则输入低于绝对零,并且不是真实的温度。该工具通过解释而不是自信地返回废话来拒绝它,这是一种小诚实,它将您可以信任的工具与您必须仔细检查的工具分开。

人们实际查找的数字的快速参考:

摄氏度 华氏度 开尔文 它是什么
−273.15 °C −459.67 °F 0K 绝对零
−40 °C −40 °F 233.15 K 两个鳞片交叉的地方
0 °C 32 °F 273.15 K 水结冰
20 °C 68 °F 293.15 K 室温
37 °C 98.6 °F 310.15K 人体
100 °C 212 °F 373.15 K 海平面水沸腾

−40交叉是值得记忆的,它是唯一点,Celsius和华氏度一致,它对你写的任何转换例程都做了很好的理智检查。

MB和MIB有什么区别?

这种转换需要花费真正的金钱和真正的虫子捕猎时间,因此它值得拥有自己的部分。

兆字节 (MB) 为1,000,000字节- 一个十进制单位,106。A 梅比比特 (MiB) 是1,048,576字节- 一个二进制单位,2²0。二进制前缀(kibi, mebi, gibi, tebi)在1998年被IEC标准化,正是为了结束歧义,大约一半的行业忽略了它们。

结果是每个人都感到一团糟:

广告 实际字节 OS显示的内容 明显&报价;损失&报价;
1千兆 1千 0.98 KiB 2.4%锛屽悓姣斿?
1兆字节 1,000,000 0.95 MiB 4.6%
1GB 1,000,000,000 0.93 地理标志 7.4%
1结核病 1,000,000,000,000 0.91 钛合金 9.9%

Drive厂商以十进制单位销售,因为十进制使数字变大Windows以二进制单位报告但标记"GB,"这是"我的1 TB驱动器只有931 GB"投诉来自-什么都没有缺失,标签就是错误的macOS和大多数Linux工具现在诚实地报告十进制GB。RAM总是二进制,因为内存寻址本质上是二次方。网络速度是十进制的 以位为单位测量,这是第三个混淆轴:a "100 Mbps"连接每秒提供约 12.5 MB,而不是 100。

我遵循的实际规则:

  1. 在代码中,工作在 字节。仅在显示层进行转换。
  2. 当您在规范中写入限制时,请将字节计数写入括号:"500 MB(500,000,000 字节)。"
  3. 如果您的 API 合同上写着 MB,请选择小数,因为这就是标签在 Windows 之外的含义。
  4. 切勿假设其他系统同意您的系统。检查。

单向转换器 data 类别中并排列出两个族,所以你可以看到差距而不是猜测它,如果你正在使用原始字节值,并且希望在位级别看到它们,the 二进制翻译 是配套工具。

人们实际上需要哪些转换?

看了搜索到的内容以及我自己达到的内容后,列表很短且可预测,以下是值得了解的冷,具体因素而不是近似值:

转换 确切的因素 快速心理数学
厘米→英寸 ÷2.54 减半,然后减去 20%
以→厘米为单位 ×2.54 加倍,加25%
公里→英里 ×0.621371 0.6相乘,加一点
英里→公里 ×1.609344 加60%
千克→磅 ×2.20462262 加倍,加10%
磅→公斤 ×0.45359237 减半,减去 10%
°C → °F ×1.8+32 将其加倍,添加 30(粗略)
公里/小时 → 英里/小时 ×0.621371 与 km → mi 相同的因子
L → 美国女孩 ÷3.785411784 4除以,加一点
MB → MiB ÷1.048576 减去约4.6%

Mental-math 列故意粗糙 - 足够好,可以理智 - 检查结果,不够好,无法发货 区分很重要: "加倍它,加上 10%" 70 kg 变成 154 lb,这在一克以内是正确的 但应用到 2000 kg 的货物上它漂移,应用到剂量计算是不可接受的 用启发式方法捕捉错误的数量级;使用确切的因子实际答案。

这些换算系数是精确的还是四舍五入的?

确切地说,这是一个比听起来更有趣的事实。

自 1959 年《国际船厂和英镑协议》以来,帝国单位是 定义 metric ones而言。英寸不是与米相对测量的;它被宣布为正好0.0254 m。磅正好0.45359237 kg。美制加仑正好3.785411784 L。这些数字中没有实验不确定性-它们是定义,就像一分钟有60秒一样。

各个类别也是如此:

  • 1 英亩 = 4046.8564224 平方米(准确)
  • 1 psi = 6894.757293168 Pa(准确地说,从磅和英寸开始)
  • 1 BTU = 1055.05585262 J(国际表定义)
  • 1 kWh = 3,600,000 J(准确地说,因为瓦特是每秒焦耳)
  • 1海里 = 1852米(确切地说,根据1929年的国际协议)

几个单位确实是约定而不是定义,诚实的工具是这么说的。 "月"不是一个固定数量--转换器使用30天,因为你必须选择一些东西,而365天的"年"忽略了闰年。马赫取决于空气温度和压力;转换器使用20 °C时约343 m/s的海平面数字。如果您需要精确的日期算术而不是标称因子,请使用 日期差计算器的,它计算实际的日历日而不是乘以30。

单向转换器 仅存储定义的值并舍入 显示的, 到八位有效数字。算术本身是在完全双精度下完成的, 因此链式转换不会累积可见误差。

我可以将 CSS 像素转换为毫米吗?

是的,这是我作为前端开发人员最常用的转换之一,这就是为什么它与物理单元一起属于长度类别。

CSS 规范定义了 参考像素 为1/96英寸。这使得96 px恰好为25.4毫米,或者1 px ≈ 0.2646毫米。它还意味着px和pt(印刷点,1/72英寸)之间的关系是固定的:1 pt = 1.333... px,和12 pt = 16 px,这就是为什么16px是每个浏览器中默认的正文字体大小- 它是12点的文本。

值得明确说明的警告:这是一个 参考 pixel,而不是设备像素 在高DPI显示器上,一个CSS像素映射到两个或三个物理像素 在手机上,视口缩放再次改变了关系 因此,当你将打印设计映射到网页布局上时,px → mm是完全正确的(A4页面宽210 mm,即793.7 CSS px),当你谈论眼睛在视网膜屏幕上实际看到的内容时,它是一个有用的近似值,而不是物理真理。

如果您正在构建布局和设计代币,则此转换加上 颜色选择器 涵盖了设计师's面向打印的规范和css实现之间的大部分翻译工作。

常见用例

开发和开发操作。 File-size 限制、存储配额、缓存大小、带宽预算。MB/MiB 区分是咬人,它咬在错误数字默默拒绝有效请求的地方,而不是抛出您会注意到的错误。

前端和设计切换。 px,pt,mm和英寸,当一个设计来自一个面向打印的工具,或者当你正在生产的东西,将既被查看又被打印。

烹饪和食谱。 US杯,汤匙,盎司与克和毫升。注意,这里的体积转换是美国的习惯 - 英制品脱和加仑是单独的条目,因为英国品脱是568毫升,而美国品脱是473毫升,20%的差异已经毁掉了很多蛋糕。

旅行和日常生活。 km到英里,kg到磅,摄氏度到华氏度,升到加仑。无光彩的大多数单位转换器流量,以及该工具默认为每个类别的合理对而不是让您配置的原因。

科学与工程。 PSI、bar 和帕斯卡的压力;焦耳、卡路里、千瓦时和 BTU 能量;度、弧度和渐变度等角度。您在 SI 纸和英制数据表之间移动的任何地方。

健身和营养。 千卡(食品标签上的 "calorie" 实际上是千卡)到焦耳、千克到磅和石头、公里到英里进行配速计算。如果您正在转换每日目标的百分比而不是单位,则 百分比计算器 是该工作流程的另一半。

为了更广泛地了解哪些基于浏览器的实用程序值得触手可及,我收集了我每天使用的实用程序 web开发人员's工具包

为什么基于浏览器的转换器很重要?

对于单位转换器来说,隐私论证比 PDF 工具弱--没有人会因为得知您将 30 厘米转换为英寸而损害您的利益。但有两件事仍然使客户端执行成为正确的架构。

1是速度,没有往返,每次击键的结果更新,因为算术发生在几微秒之外,而不是跨网络,一个服务器支持的转换器,它会反弹你的输入,显示旋转器,比在你的头部做乘法要慢。

2是,当别无他法时,它会一直工作,加载一次页面,它就会离线运行- 在飞机上,在火车上,在没有客人WiFi的数据中心,在网络讨厌你的会议室中[toolz。dev]上的每个工具(/是故意这样构建的,而这种选择背后的推理- 对于它真正保护你的工具- 都在其中布局 为什么您的数据永远不应该离开您的浏览器

常问问题

如何将厘米转换为英寸?

2.54除以厘米的數量,因為一英寸被定義為正好是2.54厘米,所以30厘米÷2.54 = 11.811英寸,和100厘米÷2.54 = 39.37英寸的關係是一個定義而非測量,由1959年的國際碼和鎊協議固定,所以是確切的而非近似的。

如何将kg转换为磅?

2.20462262乘以公斤,因为一磅的定义恰好是0.45359237公斤。这使得70公斤等于154.32磅。精神捷径 - 加倍它并添加10% - 让你在一磅的零头内,并且可以进行理智检查,但使用确切的因素来进行任何必须正确的操作,例如运输重量或剂量计算。

摄氏度转换为华氏度的公式是什么?

°F = (°C × 9/5) + 32,所以25 °C是77 °F,100 °C是212 °F,要反转它:°C = (°F − 32) × 5/9,温度既需要乘法,也需要偏移,因为两个尺度有不同的零点,不像长度或重量,因为单个乘法器就足够了。

MB和MIB有什么区别?

兆(MB)是1,000,000字节,而一个mebibyte(MiB)是1,048,576字节,即1024²,差距约为4.6%,并且随着每一步的增加而增长:一个千兆字节和一个千字节相差7.4%。驱动器制造商以十进制MB和GB进行广告,而Windows以二进制单位报告,但标记为GB,这就是为什么1 TB驱动器显示为大约931 GB。没有缺少任何东西 - 这两个系统只是以不同的方式计数。

一英里有多少公里?

1英里正好是1.609344公里,所以一公里大约是0.621371英里,跑5公里是3.107英里,跑10公里是6.214英里,跑42.195公里的马拉松是26.219英里,同样的0.621371因子将公里/小时转换为英里/小时,因为两者与每小时的距离所适用的比率相同。

转换系数是精确的还是近似的?

它们是国际标准中的精确定义值:1 英寸 = 0.0254 m,1 磅 = 0.45359237 kg,1 US gal = 3.785411784 L,1 海里 = 1852 m。仅显示结果四舍五入,为八位有效数字,这可以保持输出可读性,而不会引入您会注意到的错误。为数不多的真正传统的单位 - "月"作为 30 天,海平面马赫 - 被标记为这样。

我可以将 CSS 像素转换为毫米吗?

是的。 CSS 规范将参考像素定义为 1/96 英寸,这使得 96 px 恰好为 25.4 毫米。这种关系是您将打印设计映射到网页布局时想要的,这就是为什么 12 pt 等于 16 px。请记住,它描述了 CSS 参考像素,而不是高 DPI 屏幕上的物理像素,其中一个 CSS 像素可能覆盖两个或三个设备像素。

当我转换单位时,我的数据是否已发送到服务器?

No。Every转换都是在浏览器中用JavaScript计算的,这也是为什么结果会随着你输入而不是在网络往返之后立即更新的原因。你输入的任何内容都不会被传输、记录或存储,一旦页面加载,转换器就会在完全没有网络连接的情况下继续工作。


Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!