私は整数値を持っています:
Integer value = 56472201;
値が正または負になる可能性がある場合。
値を1000000で割ると、この結果がフォームに表示されます56.472201
が、代わりに商だけが得られます。商と剰余の両方の値を取得するにはどうすればよいですか?
私は整数値を持っています:
Integer value = 56472201;
値が正または負になる可能性がある場合。
値を1000000で割ると、この結果がフォームに表示されます56.472201
が、代わりに商だけが得られます。商と剰余の両方の値を取得するにはどうすればよいですか?
それをフロートにキャストしてから実行します。
int i = 56472201;
float j = ((float) i)/1000000.0
編集:精度(あなたの場合に必要)のために、doubleを使用してください。また、コンラッド・ルドルフが指摘しているように、明示的なキャストは必要ありません。
double j = i / 1000000.0;
intをdoubleで割ると、この単体テストで示されているように、doubleの結果が残ります。
@Test
public void testIntToDouble() throws Exception {
final int x = 56472201;
Assert.assertEquals(56.472201, x / 1e6d);
}
1e6d
1 * 10^6
ダブルとして表されます
最初に値を浮動小数点型に変換する必要があります。変換しないと、整数除算が行われます。
C#の例:
int value = 56472201;
double decimalValue = (double)value / 1000000.0;
(このコードでは、浮動小数点数で除算すると一致する値がキャストされるため、キャストは実際には必要ありませんが、実際に行われるので、コードにキャストを書き出す方が明確です。)