6

私は整数値を持っています:

Integer value = 56472201;

値が正または負になる可能性がある場合。

値を1000000で割ると、この結果がフォームに表示されます56.472201が、代わりに商だけが得られます。商と剰余の両方の値を取得するにはどうすればよいですか?

4

3 に答える 3

6

それをフロートにキャストしてから実行します。

int i = 56472201;

float j = ((float) i)/1000000.0

編集:精度(あなたの場合に必要)のために、doubleを使用してください。また、コンラッド・ルドルフが指摘しているように、明示的なキャストは必要ありません。

double j = i / 1000000.0;
于 2010-09-14T09:48:07.840 に答える
1

intをdoubleで割ると、この単体テストで示されているように、doubleの結果が残ります。

@Test
public void testIntToDouble() throws Exception {
    final int x = 56472201;
    Assert.assertEquals(56.472201, x / 1e6d);
}

1e6d1 * 10^6ダブルとして表されます

于 2010-09-14T10:23:54.913 に答える
0

最初に値を浮動小数点型に変換する必要があります。変換しないと、整数除算が行われます。

C#の例:

int value = 56472201;
double decimalValue = (double)value / 1000000.0;

(このコードでは、浮動小数点数で除算すると一致する値がキャストされるため、キャストは実際には必要ありませんが、実際に行われるので、コードにキャストを書き出す方が明確です。)

于 2010-09-14T09:48:45.390 に答える