Cách ép kiểu để lấy được giá trị là số thực?

Ví dụ mình có phép toán sau 3/2 thì khi print ra nó chỉ trả về 1

Mình đã thử ép kiểu như sau print(float(3/2)) thì cũng chỉ trả về là 1.0

Ở đây ai biết cách ép kiểu sao cho nó trả về 1.5 thì chỉ mình với :smile: Python nhé

Bạn thử dùng kiểu 3.0/2.0

1 Like

được rồi bạn ơi :smile:

Nhưng với những dòng code sau thì làm ntn hả bạn

y=float((4000000-(d3*d3)+(d2*d2))/4000)
x=float((4000000-(d2*d2)+(d1*d1))/4000)
z=float(math.sqrt((d1*d1)-(x*x)-(y*y)))

Thì bạn ép 1 trong 2 thành phần sbc hoặc sc thành float là được thôi :smile:

1 Like

vẫn không được :joy:

Mình ép sbc y=float((4000000-(d3*d3)+(d2*d2)))/4000

1 Like

Phải được chứ sao lại không được :sweat_smile: bạn lôi máy tính ra mà bấm :joy:

>>> d2 = 2000
>>> d3 = 3000
>>> y=float((4000000-(d3*d3)+(d2*d2)))/4000
>>> print y
-250.0
>>> d3 = 3001
>>> y=float((4000000-(d3*d3)+(d2*d2)))/4000
>>> 
>>> print y
-251.50025

Mà cái này có liên quan đến pytago k vậy, nếu thế thì phải là dấu trừ chứ nhể :smile:

không liên quan đến pytago :smile:

d1 =1153.4786517313617
d2 =1403.7496215493702
d3 =1833.7156268080391

Chào bạn,
d2 = 2000
d3 = 3000
y = (4000000.0 - (d32) + (d22))/4000
print y
Mình làm gì được hk? Nó ra kết quả -250.0. Có giúp bạn được gì hk?

Dùng python 3 thì phép chia sẽ trả về float
Dùng python 2 thì phép chia trả về số nguyên. Muốn phép chia trả về float thì phải float(số chia) hoặc float(số bị chia). float(kết quả) không tác dụng vì kết quả đã là số nguyên rồi.

Chào bạn,
d2 = 2000
d3 = 3001
y = round((4000000.0 - (d32) + (d22))/4000.0,2)
print y
Mình thêm round. Nó ra kết quả -251,5. Có giúp gì bạn hk?

Bạn nên thử ép kiểu Decimal, nó cho phép tính toán chính xác từng con số thập phân

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?