我想打印一個數字作爲一個整數,如果數字不具有remainder.I試着這樣做,但它似乎並沒有工作:如何檢查數字是否有餘數?
if(result%10==0)System.out.println(result.intValue());
然後我試圖打印:
System.out.println(result%10);
如果結果= 7.0,則打印出7.0。那麼如何檢查數字是否有剩餘?
我想打印一個數字作爲一個整數,如果數字不具有remainder.I試着這樣做,但它似乎並沒有工作:如何檢查數字是否有餘數?
if(result%10==0)System.out.println(result.intValue());
然後我試圖打印:
System.out.println(result%10);
如果結果= 7.0,則打印出7.0。那麼如何檢查數字是否有剩餘?
浮點值,如果它等於它截斷整數:
public boolean isInteger(double x)
{
return x == (int) x;
}
但是,請記住,浮點數常常有導致奇怪的結果四捨五入問題。例如,如果沒有舍入誤差的正確答案爲1,那麼您可能正在進行一些數學計算並得到(例如)1.00000000001的值。如果您將上述數字傳遞給isInteger()
,則它將返回false
。如果這是一個問題,則需要使用公差參數進行「足夠接近」的檢查。
也許這樣的事情,但我想它可以改進:
// test if x is "closer than epsilon" to an integer
// typical value for epsilon might be, say, 0.000001
public boolean isInteger(double x, double epsilon)
{
double delta = Math.Abs(x - (int) x);
delta -= (int) delta;
return delta < epsilon;
}
什麼是result
類型?
如果它是一個浮點數(非整數),那麼與0比較可能無效。
更好相當於
(結果10%== 0)
可能
(result.intValue()%10 == 0)
結果是double類型的。 – user3123254
int p = 4;
int q = 4;
int result = p + q;
int rem = 10;
int val = result % rem;
if (val == 0)
{
System.out.println(val + "this value has no remainder");
}
else if(val < rem)
{
System.out.println("given value cannot be devide brcouse its less than the number it going to devide");
}
else {
System.out.println("the remainde of the given value is = "+ val);
}`enter code here`
他使用雙打,而不是整數。想要檢查double是否有小數部分或是純整數。 – TypeIA
哦,大衛我誤解了你的問題! –
你總是要除以十? – iamthereplicant
因爲我想查看數字是否有餘數,所以我只分一次。 – user3123254
可能dup? http://stackoverflow.com/questions/9898512/how-to-test-if-a-double-is-an-integer –