狠狠撸
Submit Search
Measure 単位付き数値ライブラリ
?
2 likes
?
1,469 views
Kenta Murata
Follow
単位付き数値ライブラリ Measure の紹介
Read less
Read more
1 of 15
Download now
Download to read offline
More Related Content
Measure 単位付き数値ライブラリ
1.
Ruby 勉強会@札幌?09
2008?08?23 Measure 単位付き数値ライブラリ 村田 賢太 Ruby 札幌
2.
単位付き数値とは?
2
3.
単位付き数値とは? 173 [cm]
63 [kg] 376.730 [Ω] 101,325 [Pa] 1.602 10?19 [C] 2
4.
Measure ライブラリ 単位付き数値クラスを提供
異なる単位間の変換を定義可能 単位付き数値の簡易記法を提供 3
5.
インストール方法 mrkn-macbook:~ root# gem
install -r measure Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed measure-0.1.0 1 gem installed Installing ri documentation for measure-0.1.0... Installing RDoc documentation for measure-0.1.0... mrkn-macbook:~ root# 4
6.
使い方 mrkn-macbook:~ root# irb irb(main):001:0>
require 'measure' irb(main):002:0> Measure.define_unit :m, :length irb(main):003:0> Measure.define_unit :cm, :length irb(main):004:0> Measure(1, :m) => #<Measure:0x57d8c @unit=:m, @value=1> irb(main):005:0> Measure(1, :cm).to_s => "1 [cm]" 5
7.
単位変換 irb(main):006:0> Measure.define_conversion :m,
:cm => 100 irb(main):007:0> (Measure(1, :m) + Measure(1, :cm)).to_s => "1.01 [m]" irb(main):008:0> Measure.define_unit :in, :length irb(main):009:0> Measure.define_conversion :in, :cm => 2.54 irb(main):010:0> Measure.define_unit :mm, :length irb(main):011:0> Measure.define_conversion :m, :mm => 1000 irb(main):012:0> (Measure(210, :mm) - 2*Measure(1, :in)).to_s => "159.2 [mm]" 6
8.
マルチホップ変换 [in]
2.54倍 [cm] 100倍 [m] 1000倍 [mm] 7
9.
マルチホップ変换 [in]
2.54倍 [cm] 100分の1 2.54分の1 100倍 [m] 1000倍 1000倍 [mm] 7
10.
マルチホップ変换
[in] 2.54倍 [cm] 100分の1 2.54分の1 100倍 [m] 1000倍 連結な単位間での 1000倍 相互変換の経路を [mm] 幅優先探索で発見 7
11.
簡易記法 irb(main):013:0> require 'measure/support' irb(main):014:0>
Measure.form { 1.m - 1.cm }.to_s => "0.99 [m]" 8
12.
定义済み単位
measure/length を require すると次の単 位が定義され相互変換可能な状態になる m, meter in, inch pt, point, dp, didot_point cm, centi_meter ft, feet bp, big_point mm, milli_meter yd, yard pc, pica km, kilo_meter um, micro_meter nm, nano_meter 9
13.
未対応な機能 多次元単位 たとえば
1 [kg m / s2] など 簡易記法なら 1.kg.m.s(?2) かな? スケーリング以外の単位変換 [ C] = 5 ([ F] ? 32) / 9 など 開発版では対応済み 10
14.
Proc による単位変換 irb(main):015:0> Measure.define_unit
:deg_c, :temperature irb(main):016:0> Measure.define_unit :deg_f, :temperature irb(main):017:0> Measure.define_conversion :deg_c, :deg_f => lambda {|x| 9.0*x/5.0 + 32 } irb(main):018:0> Measure.define_conversion :deg_f, :deg_c => lambda {|x| 5.0*(x - 32)/9.0 } irb(main):019:0> Measure.form { -40.deg_c.as_deg_f }.to_s => "-40.0 [deg_f]" 11
15.
Future works スケーリング以外の変換を実装したバージョン
をリリースする 定义済み単位を増やす 多次元単位への対応 12
Download