单位换算 · 速度温度

浓度换算

mol/L/mg/mL/ppm/百分比

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 49 次使用
编辑任一浓度,全单位实时联动 · 选物质后出摩尔浓度
g/mL
有效数字 6 质量基准 g/L · ρ=1.000 g/mL
质量浓度mass concentration · 纯系数互通(基准)w/v 的 ppm = mg/L
摩尔浓度molar · 质量浓度 ÷ 摩尔质量 M
质量分数w/w fraction · g/L = w·ρ·1000
浓度对数标尺 · 当前 在 ppt → mol/L 量级上的位置(以质量浓度 g/L 计)
ppm/ppb/% 必须分清口径:本表「质量分数组」按 w/w(质量比质量,靠溶液密度 ρ 桥接到 g/L); 而 w/v(质量比体积)口径的 1 ppm = 1 mg/L 恒成立、与 ρ 无关,请直接看上方「质量浓度组」的 mg/L。 稀水溶液 ρ≈1 时两者数值相同,但严格场景口径不可混用;v/v(体积比体积,如酒精度)需各组分密度,不在本表。

常用换算速查 quick reference · 点击填入

常见物质摩尔质量 molar mass · 点击选用(g/mol)

物质摩尔质量 M (g/mol)1 mol/L = ? g/L

说明 about concentration

就绪 · 输入任一浓度数值即可全单位联动换算
第一节

关于本工具

About

配培养基时,1 mg/mL 的母液要稀释到 50 μM,算到一半发现 mol/L 和 ppm 还得再换算一遍。这个工具把摩尔浓度、质量浓度、ppm 和百分比放在同一界面,输入一个值,其余自动算出。所有计算在浏览器本地执行,数据不会离开设备——实验记录、质控报告复核时顺手就能验一遍。

使用场景

实验室配标准液

生物系研究生小陈需要配制 100 mL 浓度为 500 ppm 的 NaCl 溶液,但手边只有 mol/L 的母液(5 mol/L)。他换算后发现 500 ppm NaCl 约等于 0.00855 mol/L,需取母液 0.171 mL。本工具支持 ppm 与 mol/L 互转,且自动识别溶质摩尔质量(如 NaCl 为 58.44 g/mol),避免手动计算时的单位混淆和有效数字错误,确保标准曲线线性。

水产养殖调盐度

鱼塘老板老周购入一批海水鱼苗,要求盐度 15‰(即 15000 ppm),但他买的工业盐包装上写的是“每升水加 3 g 盐”这种 mg/mL 单位。他需要确认 3 mg/mL 是否等于 3000 ppm?本工具直接显示 1 mg/mL = 1000 ppm,他算出需加 15 mg/mL 即 15 g/L,避免了鱼苗因盐度骤变死亡的经济损失。

农资店兑农药

果农老李买回一瓶 50% 乳油农药,说明书要求稀释成 800 ppm 的药液。他习惯用“一喷雾器(15 L)加多少毫升原药”来算。本工具帮他换算:50% 原药即 500000 ppm,稀释到 800 ppm 需稀释 625 倍,15 L 水需加原药 24 mL。避免了因浓度过高烧叶或过低无效的风险。

水质检测报告解读

环保检测员小王拿到一份工业废水报告:COD 为 120 mg/L,氨氮为 0.5 mg/L。但排放标准 GB 8978-1996 中部分限值以 ppm 为单位。他需快速确认 120 mg/L 是否等于 120 ppm(1:1 关系仅适用于水溶液)。本工具明确提示“mg/L 与 ppm 在稀水溶液中数值相等”,帮助他直接对照标准判定是否超标,避免误判。

烘焙配方跨国换算

甜品师阿琳在法国食谱上看到“糖浆浓度 30°Bé(波美度)”,但她的糖度计只显示百分比。她查到 30°Bé 约等于 54.7% 糖度(蔗糖溶液)。本工具支持百分比与波美度(需查表)的近似换算,她输入 54.7% 得到 547000 ppm,确认与配方一致,避免了糖浆结晶或发酵失败。

对比矩阵

维度本工具竞品 A(在线换算站)传统方法(手动计算)
单位覆盖mol/L、mg/mL、ppm、百分比、mg/L、g/L 等 10+ 单位互转常见 5-8 种单位,部分缺 mg/mL ↔ ppm需记忆单位定义与换算系数,易遗漏小众单位
输入容错自动识别大小写、空格、科学记数法(如 1e-3)多数要求严格格式,空格或大小写错误报错完全依赖人工核对,小数点错位风险高
反向换算支持任意两个单位双向换算(如 ppm → mg/mL 与 mg/mL → ppm)部分仅支持固定方向(如仅 mol/L → mg/mL)需手动推导逆运算,增加计算步骤
实时校验输入非法值(负数、超范围)即时提示并阻止计算部分网站提交后才报错,或静默返回错误结果无校验机制,错误需自行发现
隐私纯浏览器计算,数据不上传服务器数据需发送至服务器处理,有日志留存风险完全离线,但需自行保管计算草稿
速度毫秒级响应,无网络延迟依赖服务器响应,高峰期可能卡顿取决于计算者熟练度,平均 10-30 秒/次
第二节

使用指南

Getting Started

使用步骤

  1. 1在「数值」输入框键入待换算的数字(如 0.01),支持小数和科学记数法
  2. 2从「原单位」下拉列表选择当前单位(如 mol/L),列表按字母排序,可输入首字母快速定位
  3. 3从「目标单位」下拉列表选择要换算到的单位(如 ppm),选中后结果区立即显示换算值
  4. 4点击结果区右侧的「复制」图标,将换算结果(含单位后缀)写入剪贴板,图标短暂变为「已复制」反馈
  5. 5若需批量换算,连续修改原数值或切换原单位/目标单位,结果区每次更新均保留最近 5 条换算记录

输入输出示例

输入输出说明
0.1 mol/L → mg/mL(溶质 NaCl,分子量 58.44)5.844 mg/mL常规:实验室常用浓度换算,验证 mol/L 到质量浓度的基本公式(浓度 × 分子量)
1000 ppm → 百分比0.1%常规:ppm 与百分比的典型换算(1% = 10000 ppm),验证比例关系
1 mg/mL → ppm(水溶液,密度 1 g/mL)1000 ppm常规:稀水溶液中 mg/mL 与 ppm 等价(1 mg/L = 1 ppm),验证默认密度假设
0.001 mol/L → ppm(溶质 H₂SO₄,分子量 98.08)98.08 ppm边界:极低浓度(mM 级),验证小数精度与 ppm 换算的正确性
100% → ppm1000000 ppm边界:纯物质(100%),验证百分比上限与 ppm 的极限换算(1% = 10000 ppm)
0.0000001 mol/L → mg/mL(溶质任意,分子量 100)0.00001 mg/mL边界:极低浓度(nM 级),验证工具对极小数值的科学计数法处理与精度保留
5 mg/mL → mol/L(溶质 NaOH,分子量 40.00)0.125 mol/L易错:质量浓度转摩尔浓度,用户常忘记输入分子量或单位混淆(mg/mL 与 g/L 差 1000 倍)
0.5% → mg/mL(溶质葡萄糖,分子量 180.16)5 mg/mL易错:百分比转质量浓度时,用户误以为 1% = 10 mg/mL(实际需依赖溶质密度/分子量,此处假设水溶液密度 1 g/mL 则 1% = 10 mg/mL)

常见错误对照

1.ppm 与 mg/L 混淆,误以为 1 ppm = 1 mg/L 适用于所有溶液

✗ 错误浓度 500 ppm = 500 mg/L,直接用于油样或有机溶剂
✓ 修复确认溶液为水溶液(密度 ≈ 1 g/mL)时,1 ppm ≈ 1 mg/L;非水溶液需查密度换算

ppm 是质量/质量比(mg/kg),mg/L 是质量/体积比。仅当溶液密度为 1 g/mL 时二者数值相等;油、酒精等密度不同,直接等同会引入误差。

2.百分比与 ppm 换算时小数点位数错误

✗ 错误0.05% = 5000 ppm(实际应为 500 ppm)
✓ 修复0.05% = 0.05 × 10000 = 500 ppm

1% = 10000 ppm,换算因子是 10000 而非 1000。常见错误是将百分比直接乘以 1000,漏了一位。

3.mol/L 换算 mg/mL 时忽略摩尔质量单位

✗ 错误1 mol/L NaCl = 58.44 mg/mL(应为 58.44 g/L = 58.44 mg/mL?)
✓ 修复1 mol/L NaCl = 58.44 g/L = 58.44 mg/mL(正确)

mol/L 转 mg/mL 需乘以摩尔质量(g/mol)再除以 1000。NaCl 摩尔质量 58.44 g/mol,1 mol/L × 58.44 = 58.44 g/L = 58.44 mg/mL。若误用 mg 单位会差 1000 倍。

4.输入数值带单位字符串,工具未做智能解析时直接报错

✗ 错误输入框填 "500 ppm" 或 "0.5%" 而非纯数字
✓ 修复仅输入数字 500,单位从下拉框或单选按钮选择 ppm

多数浓度换算工具要求数字与单位分离输入。带单位字符串会被视为非法字符导致无法计算,或解析为 0。

5.ppm 与 ppb 混淆,数量级差 1000 倍

✗ 错误1 ppm = 1000 ppb(正确应为 1 ppm = 1000 ppb,但误写为 1 ppm = 1,000,000 ppb)
✓ 修复1 ppm = 1000 ppb

ppm 是 10⁻⁶,ppb 是 10⁻⁹,相差 1000 倍。常见混淆是将 ppm 当作 10⁻⁹ 或误记换算因子为 10⁶。

6.百分比浓度误用体积百分比(% v/v)代替质量百分比(% w/w)

✗ 错误乙醇水溶液 50% 直接当作 50 g/100g 使用
✓ 修复明确标注 50% v/v(体积比)或 50% w/w(质量比),根据工具支持的维度选择

浓度换算工具通常只处理纯数值换算,不区分 v/v 与 w/w。用户若混用,结果可能偏差 5%-20%(因密度差异)。

7.mg/mL 转 g/L 时忘记除以 1000

✗ 错误500 mg/mL = 500 g/L(实际应为 0.5 g/L)
✓ 修复500 mg/mL = 500 ÷ 1000 = 0.5 g/L

mg 到 g 是 1/1000,mL 到 L 也是 1/1000,所以 mg/mL 到 g/L 的换算因子是 1(分子分母同时除以 1000)。常见错误是只除一次。

8.输入极小浓度时科学计数法格式不被工具支持

✗ 错误输入 1e-6 或 0.000001 但工具只接受普通小数
✓ 修复输入 0.000001(或工具明确说明支持科学计数法时再用 1e-6)

部分前端工具未实现科学计数法解析,输入 1e-6 会被当作字符串或非法数字。建议先试用一个值确认支持格式。

第三节

工作原理

How It Works

核心公式

c₁ × V₁ = c₂ × V₂

变量说明

  • c₁初始浓度,单位 mol/L
  • V₁初始体积,单位 L
  • c₂目标浓度,单位 mol/L
  • V₂目标体积,单位 L

示例

实验室有 0.5 mol/L 的 NaCl 溶液 200 mL,需稀释至 0.1 mol/L。代入公式:0.5 × 0.2 = 0.1 × V₂,得 V₂ = 1.0 L。即需加水至总体积 1.0 L(加水 800 mL)。

输入数值+单位(如 5 mg/mL)识别单位类型(质量/体积/摩尔)查内置换算表显示换算结果(多单位并列)结束
用户输入 本地处理 输出结果 结束
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

def convert_concentration(value, from_unit, to_unit): """ 浓度单位换算:支持 mol/L, mg/mL, ppm, 百分比(%, v/v 或 w/v) 返回换算后的数值,不处理单位字符串大小写 """ # 统一转为 mg/mL 作为中间基准 to_mg_per_ml = { 'mol/L': value * 18.015, # 假设溶质为水(分子量 18.015 g/mol),仅作示例 'mg/mL': value, 'ppm': value / 1000, # 1 ppm ≈ 1 mg/L = 0.001 mg/mL '%': value * 10 # 1% = 10 mg/mL(密度 1 g/mL 时) } mg_per_ml = to_mg_per_ml.get(from_unit) if mg_per_ml is None: raise ValueError(f"不支持的单位: {from_unit}") from_mg_per_ml = { 'mol/L': lambda x: x / 18.015, 'mg/mL': lambda x: x, 'ppm': lambda x: x * 1000, '%': lambda x: x / 10 } converter = from_mg_per_ml.get(to_unit) if converter is None: raise ValueError(f"不支持的目标单位: {to_unit}") return converter(mg_per_ml) # 示例:将 1 mol/L 转换为 mg/mL(水溶液) print(convert_concentration(1, 'mol/L', 'mg/mL')) # 输出: 18.015 print(convert_concentration(500, 'ppm', '%')) # 输出: 0.05
function convertConcentration(value, fromUnit, toUnit) { // 浓度换算:支持 mol/L, mg/mL, ppm, % // 注意:mol/L 换算需指定溶质分子量,此处用 18.015(水)做示例 const toMgPerMl = { 'mol/L': value * 18.015, 'mg/mL': value, 'ppm': value / 1000, '%': value * 10 }; const mgPerMl = toMgPerMl[fromUnit]; if (mgPerMl === undefined) throw new Error(`不支持的单位: ${fromUnit}`); const fromMgPerMl = { 'mol/L': x => x / 18.015, 'mg/mL': x => x, 'ppm': x => x * 1000, '%': x => x / 10 }; const converter = fromMgPerMl[toUnit]; if (!converter) throw new Error(`不支持的目标单位: ${toUnit}`); return converter(mgPerMl); } console.log(convertConcentration(1, 'mol/L', 'mg/mL')); // 18.015 console.log(convertConcentration(500, 'ppm', '%')); // 0.05
package main import ( "fmt" "errors" ) // 浓度换算:mol/L 假设溶质为水(分子量 18.015 g/mol) func convertConcentration(value float64, fromUnit, toUnit string) (float64, error) { toMgPerMl := map[string]float64{ "mol/L": value * 18.015, "mg/mL": value, "ppm": value / 1000, "%": value * 10, } mgPerMl, ok := toMgPerMl[fromUnit] if !ok { return 0, errors.New("不支持的单位: " + fromUnit) } fromMgPerMl := map[string]func(float64) float64{ "mol/L": func(x float64) float64 { return x / 18.015 }, "mg/mL": func(x float64) float64 { return x }, "ppm": func(x float64) float64 { return x * 1000 }, "%": func(x float64) float64 { return x / 10 }, } converter, ok := fromMgPerMl[toUnit] if !ok { return 0, errors.New("不支持的目标单位: " + toUnit) } return converter(mgPerMl), nil } func main() { fmt.Println(convertConcentration(1, "mol/L", "mg/mL")) // 18.015 <nil> fmt.Println(convertConcentration(500, "ppm", "%")) // 0.05 <nil> }
#!/bin/bash # 浓度换算 shell 函数:支持 mol/L, mg/mL, ppm, % # mol/L 换算基于水(分子量 18.015),仅作示例 convert_concentration() { local value=$1 from=$2 to=$3 # 先转为 mg/mL case $from in mol/L) mg_per_ml=$(echo "$value * 18.015" | bc -l) ;; mg/mL) mg_per_ml=$value ;; ppm) mg_per_ml=$(echo "$value / 1000" | bc -l) ;; %) mg_per_ml=$(echo "$value * 10" | bc -l) ;; *) echo "不支持的单位: $from" >&2; return 1 ;; esac # 从 mg/mL 转目标单位 case $to in mol/L) result=$(echo "$mg_per_ml / 18.015" | bc -l) ;; mg/mL) result=$mg_per_ml ;; ppm) result=$(echo "$mg_per_ml * 1000" | bc -l) ;; %) result=$(echo "$mg_per_ml / 10" | bc -l) ;; *) echo "不支持的目标单位: $to" >&2; return 1 ;; esac echo "$result" } convert_concentration 1 mol/L mg/mL # 18.015 convert_concentration 500 ppm % # .05
import java.util.HashMap; import java.util.Map; import java.util.function.Function; public class ConcentrationConverter { public static double convert(double value, String fromUnit, String toUnit) { // mol/L 换算基于水(分子量 18.015),仅作示例 Map<String, Double> toMgPerMl = new HashMap<>(); toMgPerMl.put("mol/L", value * 18.015); toMgPerMl.put("mg/mL", value); toMgPerMl.put("ppm", value / 1000); toMgPerMl.put("%", value * 10); Double mgPerMl = toMgPerMl.get(fromUnit); if (mgPerMl == null) throw new IllegalArgumentException("不支持的单位: " + fromUnit); Map<String, Function<Double, Double>> fromMgPerMl = new HashMap<>(); fromMgPerMl.put("mol/L", x -> x / 18.015); fromMgPerMl.put("mg/mL", x -> x); fromMgPerMl.put("ppm", x -> x * 1000); fromMgPerMl.put("%", x -> x / 10); Function<Double, Double> converter = fromMgPerMl.get(toUnit); if (converter == null) throw new IllegalArgumentException("不支持的目标单位: " + toUnit); return converter.apply(mgPerMl); } public static void main(String[] args) { System.out.println(convert(1, "mol/L", "mg/mL")); // 18.015 System.out.println(convert(500, "ppm", "%")); // 0.05 } }
第五节

常见问题

Q & A
ppm 和 mg/L 到底是不是一回事,为什么有时候一样有时候不一样?

在稀水溶液(密度≈1 g/mL)中,ppm 按质量比定义,1 ppm = 1 mg/kg,而 1 mg/L 近似等于 1 mg/kg,两者数值相等。但溶剂不是水或浓度很高时(如 10% 以上),溶液密度偏离 1,1 mg/L 就不等于 1 ppm。本工具在 ppm ↔ mg/L 转换时默认按水溶液近似处理,结果会注明“稀水溶液近似值”;若处理油、有机溶剂或高浓度溶液,请先确认密度再手动修正。

输入 0.5 mol/L 的盐酸,转成百分比是多少?

需要盐酸的摩尔质量(36.46 g/mol)和溶液密度。本工具内置常见酸碱的摩尔质量表,选“盐酸”后自动带入;但密度需用户填写(默认 1.0,仅对极稀溶液成立)。例如 0.5 mol/L 盐酸,密度 1.01 g/mL 时:质量浓度 = 0.5 × 36.46 = 18.23 g/L,除以 1010 g/L 得 1.8%。若密度留空,结果会给出“密度未知时的质量浓度 g/L”,不转百分比。

为什么我算 ppm 转百分比,结果小数点后一堆零?

ppm 和百分比差 10000 倍(1% = 10000 ppm)。例如 5 ppm 转百分比是 0.0005%,工具默认保留 6 位有效数字,所以显示 0.000500%。如果觉得零太多,可以点击结果区的“科学计数法”切换开关,显示为 5.0×10⁻⁴ %。另外也可直接看 ppm 行,数值更直观。

这个工具需要联网吗?我离线能不能用?

可以离线用。本工具是纯前端实现(FE),所有换算逻辑都在浏览器本地执行,不向服务器发任何请求。首次加载页面后断网刷新,工具依然能正常输入和出结果。隐私方面:输入的数字不会离开本机,适合处理配方、实验记录等敏感数据。

mg/mL 转 mol/L 时,摩尔质量从哪里填?

工具在 mg/mL → mol/L 模式下会弹出摩尔质量输入框,单位默认 g/mol。如果不知道数值:工具内置了一个“常见物质”下拉菜单(含 NaCl、NaOH、HCl、H₂SO₄、葡萄糖等 20+ 种),选择后自动填入。不在列表中的物质,建议查 CAS 号或分子式后手动输入。注意摩尔质量必须填,否则无法完成换算。

我输入了数字,点击转换没反应,怎么回事?

最常见原因是单位选择不完整。工具四个输入框——数值、源单位、目标单位、物质(mol/L 相关时)——必须全部填写。如果只填数值和源单位,目标单位留空,按钮会灰色不可点。另外检查数值是否含字母或符号(如“1,000”带逗号),只接受纯数字和英文小数点。如果依然没反应,按 F12 看控制台是否有红色报错,截图发给客服。

百分比和 ppm 换算时,结果能直接用于土壤重金属检测吗?

土壤检测常用 mg/kg(质量比),与 ppm 数值等价。本工具百分比 ↔ ppm 换算基于质量比,所以结果可直接用。但注意土壤样品常以“干重”为基准,如果送检报告写的是“湿重浓度”,需先扣除含水率再换算。工具不处理含水率折算,建议在输入前将湿重值乘以(1 - 含水率)得到干重浓度。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭