【问题标题】:Symmetric and transitive custom unit conversion in PerlPerl 中的对称和传递自定义单位转换
【发布时间】:2014-09-19 19:49:25
【问题描述】:

我定义了以下自定义单位(伪代码):

unix_days = unix_seconds/86400; 
nasa_seconds = unix_seconds - 946728000; 

这让我可以直接将unix_seconds 转换为unix_days 或转换 unix_secondsnasa_seconds

但是,我不能直接将unix_days 转换回unix_seconds 无需编写另一个公式。

同样,我不能不写就将nasa_seconds 转换为unix_days 附加公式。

是否有一个聪明的 Perl 子例程或包可以让我这样做 不写额外的功能?更具体地说,自定义单元 转换包:

  • 可以算出单位转换函数的倒数。例如, f(x)=x/86400 的反义词是 g(y)=y*86400

  • 可以根据需要应用传递性。例如,如果unix_seconds = nasa_seconds + 946728000(通过反函数)和unix_days = unix_seconds/86400,我们可以将它们组合起来直接从nasa_seconds 转换为unix_days

我可以用不寻常的方式编写我的转换公式,如果 需要。例如,摄氏到华氏可以写成:

C to F: *1.8 +32 

这种形式很容易倒转:只需按照后面的步骤和 反向,即:

F to C: -32 /1.8 

这样的事情存在吗?

【问题讨论】:

    标签: perl unit-conversion


    【解决方案1】:

    Physics::Unit 应该提供您需要的设施。

    【讨论】:

    • 太棒了,谢谢!我没有意识到有这样的包,可以让你定义自己的单位。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多