加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中转换物理单位(千克,磅)的图书馆?

发布时间:2020-12-16 22:09:21 所属栏目:百科 来源:网络整理
导读:我知道Rails有一些很好的帮助日期和时间管理.是否有一个已经有工作的项目,包括一个干净的DSL为标准单位和转换?任何带有帮助者的项目都将在两个系统的长度和重量基本单位之间进行转换.谢谢! 解决方法 哇,还有比我预想的还要多一些.这是我认为是一个完整的列
我知道Rails有一些很好的帮助日期和时间管理.是否有一个已经有工作的项目,包括一个干净的DSL为标准单位和转换?任何带有帮助者的项目都将在两个系统的长度和重量基本单位之间进行转换.谢谢!

解决方法

哇,还有比我预想的还要多一些.这是我认为是一个完整的列表,按字母顺序,从他们的文档中删除示例使用.我也注意到我是否无法让他们在本地运行.

> Alchemist

require 'alchemist'
Alchemist.setup
8.miles.to.meters
10.kilometers + 1.mile # 11.609344 kilometers

> measurement

这一次出现过时了,最后一次提交是5年前,对我来说似乎没有运行在1.9.3.

include Measurement::Length
Inch.new(12).to_centimeters # => #<Measurement::Length::Centimeter:0x173c2b4 @units=30.48>

> Phys-Units

require "phys/units"
Q = Phys::Quantity
U = Phys::Unit

Q[1.23,'km'] + Q[4.56,'m']    #=> Phys::Quantity[1.23456,'km']
Q[123,'mile'] / Q[2,'hr']     #=> Phys::Quantity[61,'mile/hr']
Q[61,'miles/hr'].want('m/s')  #=> Phys::Quantity[27.26944,'m/s']
Q[1.0,'are'] == Q[10,'m']**2  #=> true

> Quantity

请注意,这个说明README中没有生产就绪.

require 'quantity/all'
1.meter                                         #=> 1 meter
1.meter.to_feet                                 #=> 3.28083... foot
c = 299792458.meters / 1.second                 #=> 299792458 meter/second

newton = 1.meter * 1.kilogram / 1.second**2     #=> 1 meter*kilogram/second^2
newton.to_feet                                  #=> 3.28083989501312 foot*kilogram/second^2
newton.convert(:feet)                                   #=> 3.28083989501312 foot*kilogram/second^2
jerk_newton = newton / 1.second                         #=> 1 meter*kilogram/second^3
jerk_newton * 1.second == newton                        #=> true

> SY

见Boris Stitnickey’s answer.
> ruby-measurement

require 'ruby-measurement'

measurement = Measurement.parse('3 feet')  # => 3.0 ft.
measurement.convert_to(:yards)             # => 1.0 yd.
measurement.convert_to(:in)                # => 36.0 in.
measurement.convert_to(:inches)            # => 36.0 in.

measurement1 = Measurement.parse('3 feet') # => 3.0 ft.
measurement2 = Measurement.parse('6 inch') # => 6.0 in.
measurement1 + measurement2                # => 3.5 ft.

> ruby-units

require 'ruby-units'

unit = Unit("mm")                # unit only (defaults to a scalar of 1)
unit = Unit("1 mm")              # create a simple unit
unit = Unit("1 kg*m^2/s^2")      # complex unit

unit1 =~ unit2                   # true if units are compatible
unit1.compatible?(unit2)         # true if units are compatible

unit1 = unit >> "ft"             # convert to 'feet'
unit3 = unit1 + unit2            # resulting object will have the units of unit1

unit1 === unit2                  # true if units and quantity are the same,even if 'equivalent' by <=>
unit.convert_to('ft')            # convert
(unit1 + unit2).convert_to('ft') # converts result to 'ft'

> Units for Ruby

require 'units'

three_meters = 3.meters
two_meters = 2.m
one_inch = 1.inch

3.meters.to_inches # => 118.1103 inch
10.inches.to_mm    # => 254.0 millimeter

> Unitwise

require 'unitwise/ext'

1.yard == (1.foot * 3)                       # => true

1.quart < 1.liter                            # => true

2.meter + 3.inch - 1.yard                    # => <Unitwise::Measurement 1.1618 meter>

1.convert_to('kg.m2/s2') == 1.joule          # => true

(20.kg * 9.8.convert_to('m/s2')).to_pound_force # => <Unitwise::Measurement 44.06255284754326 pound_force>

(300.horsepower * 60.second).to_calorie      # => <Unitwise::Measurement 3208077.8414151203 calorie>

> Van/Unit

像另一张海报,我有麻烦让这个工作.但是,您可以看到J?rg W Mittag’s answer的使用.

作为Unitwise的作者,很明显,这是我最喜欢的.我鼓励你至少检查一下.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读