2011-12-12 7 views
1

Javaでは、102%100を実行し、残りを02として取得し、2とはしたくありません。どうすればよいですか?Javaでは、102%100を実行し、残りを02として取得し、2とはしたくありません。どうすればいいですか?

int a =(102%100);

リターン2及びません02 ..私はもともと、1.02ことになっているので、02 ... を取得したいのですが、MOD戻り2. :( 誰もがそれを行う方法を知っていますか?

+1

あなたは数字の文字列表現と紛らわしい数字です - 微妙だが重要な違い。 –

答えて

4

202は同じ番号です。

あなたが0持つ任意の1桁の数字は、小数点の後の最初の2つの数値を見つけるためにちょうどパッドを、これを使用しているので。あなたは、小数点の後にすべての数字をしたい場合は、より一般的な方法はこれを行うことです:

//Strip all numbers before decimal-point 
double decimalDigits = myNumber - (int)myNumber; 
+0

これを行うための自動方法はありませんか? T_T –

+0

@スンヘン陳:表示を簡単にするためにこれをやっているだけなら、そうです。実際には、このような騒ぎがなければ自動的に小数点以下を書式設定することができます。 [文字列フォーマッタ](http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html)クラスを参照してください。 –

+0

はい、NumberFormat。コードスニペットを追加します –

1

整数として、同じ番号を表します。

int a = 102/100; 
int r = 102 % 100; 
System.out.print(a + "." + String.format("%02d", r)); 

出力:ここ

1.02 
0

がゼロでパディング番号への答えをある:Add leading zeroes to number in Java?本当に

しかし、それをthatsの表示用の文字列として番号をフォーマットするために、次を使用します。

3

NumberFormatはおそらく最善の方法です。 String.formatと計算を行うこともできますが、数値を書式設定しているので、数値書式を使用することもできます。

例。私はここにあなたの要件にビットを推測している(たとえば、どのような110%100リターン、またはあなただけの一桁の残りを期待していいですか?):

NumberFormat formatter = new DecimalFormat("'0'#"); 
int remainder = 102%100; 
System.out.println(formatter.format(remainder)); 
関連する問題