快速单位感知计算器

快速单位感知计算器

我希望能够按下键盘组合键,开始输入包含单位和稍微高级数学的数学表达式(而不仅仅是四功能计算器),并立即以我指定的单位获得结果,我可以复制和粘贴。

  • 目前,我打开 Firefox,按下 Ctrl+K,在搜索框中输入内容,通常会在下拉菜单中显示结果谷歌计算器但它并不总是这样,所以我最后按下“=”,等待结果,删除等号,等待结果,意识到它不理解我输入单位的方式,在新标签中打开结果,等等。这太糟糕了。
  • Wolfram Alpha更智能,但速度却慢得多,并且输出都是图像而不是文本,而且我没有一个快捷小部件,如果这样的东西可能存在的话。
  • GNU 单元有很多单位,这很好,而且我可以定义我自己的单位,这很棒,但它们必须以特定的、非直观的方式编写,它不能处理太多高级数学,而且我需要打开终端、启动单元等。我讨厌命令行。
  • units我浪费了很多时间尝试在 Deskbar 中制作前端,Launchy,但我并不是一名真正的程序员,而且我不再使用其中任何一个了。

还有其他解决方案或增强功能吗?

(跨平台最好)

理想的单位感知计算器应该能够处理所有这些问题:

  • 7 nV/sqrt(Hz) ⋅ sqrt(20000 Hz - 20 Hz) → μV= 0.99 μV
  • sqrt(4*k*25 °C * 1 kΩ * (20 kHz - 20 Hz))= 0.57357 μV
  • 3.5 billion kilowatt-hours per year= 399.5 兆瓦
  • 60 billion kWh per year= 6.849 吉瓦
  • 1/sqrt(2 mH * 2 nF)= 500 千赫
  • 1/(2*pi*10 kΩ * 22 µF)= 0.7234 赫兹
  • 1/(2·π·100 Hz·30pF) → ohm= 53.05 兆欧
  • −10 dBV + 4 dB + 10 dB − 12 dB → dBu= -5.782 dBu
  • 94 dBSPL → Pa= 1.00237 帕斯卡
  • 54 inches + 2 feet → cm= 198.1厘米
  • 12 V ÷ 141.5 µA= 84.8千欧姆
  • 16 bit * 44.1 kHz * 2 → kbit/s= 1411千比特/秒
  • 1 hundred V / 5 ohms= 20 安
  • furlong per fortnight → cm/minute= 0.9979
  • attoparsec/microfortnight → in/second= 1.004
  • 1 ft / speed of sound= 0.89576 毫秒

答案1

我印象非常深刻算一下!

Qalculate! 截图

答案2

昆虫有基于网页和终端的版本。它支持解析、处理和转换物理单位,例如:

>>> 2min + 30s

   = 2.5min

>>> 40000km / speedOfLight -> ms

   = 133.426ms

>>> 6Mbit/s * 1.5h -> GB

   = 4.05GB

>>> 2J·s + 3W

  Unification error:

    Cannot unify unit W (base units: kg·m²·s⁻³)
            with unit J·s (base units: kg·m²·s⁻¹)

答案3

为了获得易于编写脚本的解决方案,您可能需要查看sympypython 模块。

$ cat conv.py

#!/usr/bin/env python
import sys
from sympy.physics.units import *
from sympy.printing.pretty.pretty import pprint
from sympy.abc import x, y, z
from sympy import *

# adding extra units is easy
parsec = 3.26163626*ly

if __name__ == '__main__':
  s_input = sys.argv[1]
  s_unit  = sys.argv[2]
  input = eval(s_input)  # input string
  unit  = eval(s_unit)   # output unit

  print 'Converting:'
  pprint(input)
  print
  print str((input/unit).evalf()) +' '+ s_unit

例如,将一些比较丑陋的表达式转换为 mm:

$./conv.py 'tanh(3*m/(2*m))*sinh(60*deg)*1*parsec' 'mm'


Converting:
                           /π\
3.08574615554565e+16*m*sinh|--|*tanh(3/2)
                           \3 /

3.48955431541888e+19 mm

当然,这是非常愚蠢的代码,它没有检查输入和输出的单位兼容性,因此最终可能会在结果中出现额外的单位。

$./conv.py 'c' 'parsec'

Converting:
299792458*m
-----------
     s

9.71539598165644e-9/s parsec

答案4

Wolfram Alpha 能够处理数学运算,并且不需要您下载或安装任何东西。

点击此处了解如何使用其数学函数。

相关内容