2011-06-22 39 views
0

對於涉及多種類型的變量(如整數和雙精度)的計算,以下方法是否不會導致任何隱藏的錯誤或信息丟失?涉及多種類型變量的計算

int a = 2; 
    double b = 3.0; 
    double c; 
    c = (double)(a+b); 
    c = (double)(a/b); 

另一種情況是:

int x =2; 
int y = 3; 
double z; 

Z = X/Y不會給我正確的價值像0.666666666,如何處理這種情況的?

回答

1

當您執行浮點數和整數之間的操作時,結果爲浮點數。一般來說,結果將是更大的數據類型。如果你想要小數精度,你首先要做的是正確的。你甚至不需要演員。

在第二種情況下,你可以做幾件事情

z = x/(y*1.0) // convert the variable upon calulation 

float x =2; // convert the variable itself