- ベストアンサー
double型変数値の整数部分のみ取得したい
ご存知の方がおりましたら、教えてください。 double型変数値の整数部分のみStringで取得したいのですが、 Javaの場合、どうすれば簡単に取得できますでしょうか? (double)32000.0 ↓ (String)32000
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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経由にしないと書けないかもしれません。
noname#49664
回答No.2
double d = 32000.0; String s = Integer.toString((int)d);
質問者
補足
回答ありがとうございます。 ただ、intの範疇を超える数字があると、 桁落ちしてしまうので、できればそれは避けたいのですが。 たとえば、 30000000000.0とかです。
- seegrammar
- ベストアンサー率25% (253/974)
回答No.1
こんなんじゃだめ? double d = 3.2; Double dd = new Double(d); System.out.println(String.valueOf(dd.intValue())); 思いつきですから。
お礼
みなさん、色々とありがとうございました。 とりあえず、回答を参考にして、 bestな方法を探りたいと思います。