2016-04-04 11 views
-1

私は2つの整数値 int型フィオナ=魅力的な13 int型= 52つの整数を2倍にすることはできますか?

表現魅力的な フィオナは、/ = 2.6

Javaでは、それは実数または整数になったんしている場合はどうなりますか?他の多くの型付けの言語では、次の2つの整数を分割するときに、整数の結果を得ることができますように

+0

フィオナ?魅力的ですか?シュレックはどうですか? ;) – mrt

答えて

1

Javaでは、:

int fiona = 13; 
int charming = 5; 
if(fiona/charming == 2) 
    System.out.println("int"); 

intを印刷します。

あなたは、二重にしたい場合は、用語は、二重に昇進分裂を必要とする:

int fiona = 13; 
int charming = 5; 
if((double)fiona/charming == 2) 
    System.out.println("int"); 
else 
    System.out.println("value: " + ((double)fiona/charming)); 

value: 2.6を印刷します。ここで、デビジョンの1つの用語のdoubleへのキャストは、doubleの結果:double result = (double)fiona/charming;を生成します。

1/3の(整数)除算を添加(及び任意の促進)の前に評価される式例えば:0.5

double result = (double)1/2 + 1/3; 

結果に促進するための優先順位の規則があることに注意してくださいが起こります。

0

デフォルトでは、結果が切り捨てられます。あなたの場合、フィオナ/チャーミングは2に切り捨てられます。

しかし、希望は失われません!これを行うには、いくつかの方法があります。分子または分母のいずれかをdoubleにキャストして、結果をdoubleにすることができます。したがって、これらのいずれかが動作します:

double fionasPerCharming = fiona/(double)charming; 
double fionasPerCharming2 = (double)fiona/charming; 

またはポイントの多くはありませんけれども、あなたが、望んだ何らかの理由場合は、両方を行うことができます。それはすでにフィオナ分かれているため、魅力的なことで

double fionasPerCharmingFail = (double)(fiona/charming); 

これは動作しませんし、あなたがそれをキャストしようとする前に、整数の結果を得て:あなたが行うことはできません

double fionasPerCharming3 = (double)fiona/(double)charming; 

しかし、一つのことは、分裂後にキャストされ。データ型は2倍になりますが、値は2になります。小数点以下1桁を表示すると2.0と表示されます。

0

2つの整数の間の演算の結果は、別の整数です。浮動小数点結果が必要な場合は、必要に応じてオペランドの1つをfloatまたはdoubleにキャストする必要があります。

関連する問題