#unit-conversion #unit #conversion #natural #physics #scientific #convert

bin+lib natural_unit

物理单位转换程序(SI、CGS、自然、几何化)

5 个版本

0.1.4 2020年4月22日
0.1.3 2019年7月4日
0.1.2 2019年7月4日
0.1.1 2019年5月14日
0.1.0 2019年5月14日

科学 类别中排名 #330

BSD-3-Clause 许可协议

12KB
209

自然单位

On crates.io On docs.rs travis
maintenance

基于基本常数的物理单位转换

单位系统列表

  • SI
  • CGS
  • 几何化(含 CGS)
  • 含单位太阳质量的几何化
  • 自然单位(含 CGS)
  • 自然单位(MeV)
  • 自然单位(高斯)

如何使用?

  1. 只需声明三个转换系数 - M,L,T
  2. 自动获得剩余的转换系数(动量、能量等)
  3. 使用声明的转换系数结构体 convert 值。

示例:CGS -> 几何化,太阳半径 = 1

extern crate natural_unit;
use natural_unit::*;

fn main() {
    // Declare mass, length, time conversion factor.
    let cgs_to_geom = ConversionFactor::new(
        CONSTANT_CGS.G / (CONSTANT_CGS.c.powi(2) * CONSTANT_CGS.r_solar),   // Mass conversion factor
        1f64 / CONSTANT_CGS.r_solar,                                        // Length conversion factor
        CONSTANT_CGS.c / CONSTANT_CGS.r_solar                               // Time conversion factor
    );
    
    // What do you want to convert?
    let solar_mass_cgs = CONSTANT_CGS.m_solar;                              // CGS Solar Mass
    
    // Convert! (`convert(f64, Dimension, ConversionFactor)`)
    let new_solar_mass = convert(solar_mass_cgs, Mass, cgs_to_geom);        // Converted Solar Mass
    
    // Invert! (`invert(f64, Dimension, ConversionFactor)`)
    let inverted_solar_mass = invert(new_solar_mass, Mass, cgs_to_geom);    // Inverted Solar Mass
    assert_eq!(solar_mass_cgs, inverted_solar_mass);
}

无运行时依赖