2017-05-15 6 views
2

とJavaで小数点以下の値を取得するのは、私が持っているとしましょう:は精度

double x = 2.546; 

私はどのように私はそれに行くか、5に等しいですint必要ですか?

答えて

9

その後、doubleから小数の末尾を取り除くために%10操作

+0

ありがとう、私自身でこれを考え出しましたが、すでに何かが組み込まれていると思いました:) – CodeGeass

+0

幸い、何も組み込まれていません。しかし、あなた自身がそれを理解したことは良いことです! :) –

2

一つの簡単な方法は、int型にキャストすることで適用され、その後、intとしてキャスト、10で乗算する必要があります。我々は(int型)のx 2.546であるxから、2である減算することにより、xから(2)1の位置を削除

double x = 2.546; 
x-= (int)x; 
x *= 10; 
int y = (int) x; 

:いくつかの巧妙なキャスティングで、我々はこれを行うことができます。次にxに10を掛けて5.46を得る。 xをintにキャストすると、5になります。これは他の多くの言語でも機能します。

+0

問題に近づく興味深い方法。私はそのように考えなかっただろう! –

2

これを行うことはできますか?

int intVar = parseInt(x.toString().substring(indexOf('.')+1,1)); 

私は実際には試みていないので、調整する必要があります。しかしそれがアイデアです。

基本的な考え方は、文字列に変換し、小数点を見つけ、その次の文字を取得してintに変換することです。

例外を処理するために少し肉付けしなければならないかもしれません。同様に、小数点がない場合はどうなりますか?