30/09/2018, 20:28

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 Python nhé

Pham Van Hai viết 22:28 ngày 30/09/2018

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

17XGOD viết 22:43 ngày 30/09/2018

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

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ành Phạm viết 22:32 ngày 30/09/2018

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

17XGOD viết 22:30 ngày 30/09/2018

vẫn không được

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

Thành Phạm viết 22:32 ngày 30/09/2018

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

>>> 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ể

17XGOD viết 22:34 ngày 30/09/2018

không liên quan đến pytago

d1 =1153.4786517313617
d2 =1403.7496215493702
d3 =1833.7156268080391

Đoàn Vũ Luân viết 22:45 ngày 30/09/2018

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?

htl@PyMI.vn viết 22:40 ngày 30/09/2018

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.

Đoàn Vũ Luân viết 22:29 ngày 30/09/2018

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?

17XGOD viết 22:35 ngày 30/09/2018

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

Bài liên quan
0