2009-07-28 12 views
32

私は単位変換(メートル法、メートル法、メートル法)を実行する必要があるアプリケーションを持っています。Javaメトリックユニット変換ライブラリ?

これを実行する既存のJavaライブラリがありますか?または私自身をロールバックする必要がありますか? (私の初期のGoogle検索では、役に立たないと判明しました。)

+3

このhttps://github.com/mbe24/siusを見ると、メートル、長さとキロのマイル、質量のポンドをサポートするようになりました。それは追加をサポートし、*暗黙の型変換を行います。これは静的に型付けされているため、コンパイル時に変換エラーが表示されます:)もっと機能を追加します:) – mike

答えて

46

JSR 275(javax.measure)はJScienceとなり、RI(Reference Implementation)となります。例えばキロに100マイルを変換するように簡単です:

UnitConverter toMiles1 = KILOMETER.getConverterTo(MILE); 

逆を簡単にすることができ

UnitConverter toKilometers = MILE.getConverterTo(KILOMETER); 
double km = toKilometers.convert(Measure.valueOf(100, MILE).doubleValue(MILE)); 

(単位はすべてのタイプの安全なコンパイル時、キラー特徴私見であることに注意します)

UnitConverter toMiles2 = toKilometers.inverse(); 

NB輸入:

として

又はsupereasy

import javax.measure.Measure; 
import javax.measure.converter.UnitConverter; 
import javax.measure.quantity.Length; 
import static javax.measure.unit.NonSI.*; 
import static javax.measure.unit.SI.*; 
+1

ありがとうございます;私はこれを聞いたことがないが、私の仕事に非常に役立つだろう。 – I82Much

+6

非常にいいですが、リクエストが拒否され、JScience 5.0がダウンロードされ、ここに示す例のような実装が見つかりませんでした。誰でもこれを今どのように達成できるのかを指摘できますか? – CCC

+2

JSR 275が拒否されました – Nate

0

SourceForgeでJava Unit Conversion libraryが見つかりましたが、まだ試していません(近い将来類似の機能が必要になります)。 BSDライセンスとしてライセンスされています。それは助けるかもしれない。杭に追加

+3

申し訳ありませんが、それはすでに長い間死んでいて、ドキュメンテーションを持っていないようです...私はそれを見なくてもあまりにも速く答えました。 –

-4

ニコラスanswerを別の質問から報告します。

あなたは2つの基本的な方法があります。

  1. あなたは怠惰であれば、あなたは怠惰でない場合は、あなた自身のConverterクラスを記述javax.measure library
  2. を試してみてください。

    public class Converter { 
    
        public static double feetToCm(double feet) { 
         return feet * 30.48; 
        } 
    
        public static double poundsToKg(double pounds) { 
         return pounds * 0.45359237; 
        } 
    
        // etc. 
    
    } 
    

    使用方法:

    double myPounds = 5.5; 
    doube myKilos = Converter.poundsToKg(myPounds); 
    
関連する問題