• ベストアンサー

double型変数値の整数部分のみ取得したい

ご存知の方がおりましたら、教えてください。 double型変数値の整数部分のみStringで取得したいのですが、 Javaの場合、どうすれば簡単に取得できますでしょうか? (double)32000.0 ↓ (String)32000

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

int に納まらないなら、long にキャストでよいのでは? long に納まらない数値が対象となるようなら、BigDecimalを中継する必要があるでしょう ((new BigDecimal(double_data) ).toBigInteger()).toString()

その他の回答 (3)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.4

double値の整数部分ならMath.floorあるいはMath.ceil(負の場合)で取れますが。 Stringとして取るならString#formatを使えば良いのではないでしょうか。精度指定で小数点以下を表示しないようにできると思います。 ただ大きい桁数だとANo.3で書かれているようにBigDecimal経由にしないと書けないかもしれません。

oyaji111
質問者

お礼

みなさん、色々とありがとうございました。 とりあえず、回答を参考にして、 bestな方法を探りたいと思います。

noname#49664
noname#49664
回答No.2

double d = 32000.0; String s = Integer.toString((int)d);

oyaji111
質問者

補足

回答ありがとうございます。 ただ、intの範疇を超える数字があると、 桁落ちしてしまうので、できればそれは避けたいのですが。 たとえば、 30000000000.0とかです。

回答No.1

こんなんじゃだめ? double d = 3.2; Double dd = new Double(d); System.out.println(String.valueOf(dd.intValue())); 思いつきですから。

関連するQ&A