2012-02-20 22 views
5

thể trùng lặp:
C programming divisionMục tiêu c int để tính toán đôi

Tôi đang cố gắng để tính toán khoảng thời gian cập nhật gia tốc bằng cách sử dụng người dùng nhập vào tần số.

đây là mã của tôi:

double interval = 1/Freq; 

khoảng = khoảng thời gian

Freq là một int thiết lập bởi người sử dụng.

Sự cố tôi gặp phải là cho phép nói rằng tôi đặt Freq thành 2Hz nên khoảng thời gian phải là 0,5 nhưng thay vì khoảng thời gian là 0,00000000 lý do tại sao điều này? Tôi có thể làm bất cứ điều gì để thay đổi nó mà không thay đổi Freq thành một đôi?

+0

và nhiều người khác ... – JeremyP

+1

tại sao không khai báo tạm thời tăng gấp đôi mà bạn sử dụng để tính toán, để lại 'Freq' một int, làm' 1.0/tmpFreq'? –

Trả lời

5

Bạn đang sử dụng bộ phận số nguyên: (cả hai số 1Freq là số nguyên). Vì vậy, kết quả sẽ là một số nguyên và chính xác hơn là 0 trong trường hợp này.

Bạn có thể làm một cái gì đó như thế này:

double interval = 1.0/Freq; 

Hoặc

double interval = 1/(double)Freq; 
0

làm theo cách này,

double interval = 1.0/Freq; 
Các vấn đề liên quan