Mặc dù điều này đã được trả lời, không có ai đã cho điểm tốt về xem cho vấn đề này, vì vậy tôi muốn làm cho nó rõ ràng hơn:
Nếu bạn là dividing
hoặc multiplying
int
và float
bạn sẽ nhận được kết quả như thế này:
int/int => int
float/int => float
int/float => float
.210
vì vậy nếu bạn đang phân chia:
123/1000 => 0 (as there is no int number 0.123, it will then set to 0)
123.0/1000 => 0.123 (this dividing is basically saying that I need a float result of dividing)
123/1000.0 => 0.123 (this says the same as previous)
Vì vậy, các nguyên tắc cơ bản là - nếu bạn đang sử dụng một loại đó là trên mức "thượng" mà một trong những nó được sử dụng, sau đó tính toán sẽ được dịch sang mà " loại "cha". Nhưng điều này không thể được nói chung, như thể loại nổi được sử dụng, nó sẽ luôn luôn được chuyển đến số float.Dưới đây là ví dụ:
long/int => long
double/float => double
double/int => double
Và nếu bạn muốn có một câu trả lời cho câu hỏi của bạn, câu trả lời sẽ được đưa:
if(((float)123/1000) > 0)
hoặc
if(((double)123/1000) > 0)
Vì vậy, nó sẽ luôn tính số phao (số 0.123)
int/int luôn là int ... Hey đây là một ý tưởng hay về bài hát ... – ppeterka
nếu ((123.0/1000.0)> 0.0) cho bạn thì sao? – Dutts
một trong các toán hạng phải là số dấu phẩy động, bạn có thể chỉ định 'if ((123d/1000)> 0)' – Habib