Làm thế nào để xuất ra giá trị thập phân trong python

Em làm bài tập python . Đoạn code như này ạ. Nhưng khi in ra kết quả thì nó luôn làm tròn số.
Cho em hỏi có cách nào để nó in ra kết quả thập phân không ạ. Em cảm ơn nhiều ạ

print "Nhap vao gia tri cua n :"
n = float(raw_input(">"))
tong_S = 0
i = 1
while i < n: 
	tong_S = tong_S + 2/(i*(i+1)) 
	i = i + 1 
print "Gia tri cua tong S la` : %f" % tong_S 

Với Python 2.X thì / là một phép chia lấy phần nguyên

>>> 9 / 2
4

Muốn có phần thập phân thì nhiều cách. Bạn thử xem mấy cách này xem sao

>>> 9 / 2.0
4.5
>>> 9.0 / 2
4.5
>>> 9.0 / 2.0
4.5
>>> float(9) / 2
4.5
>>> 9 / float(2)
4.5
>>> float(9) / float(2)
4.5

Mình thử rồi mà nó cứ làm tròn. Lạ thật

i là số nguyên bạn ạ. Phải đổi i nguyên sang i thực chứ. Hoặc ít nhất thì lúc gán cũng nên thành

i = 1.0

i = i + 1.0
1 Like

:laughing: Chuẩn rồi, mình để sang thế này ok luôn

print "Nhap vao gia tri cua n :"
n = float(raw_input(">"))

i = 1.000
tong_S = 0
while i <= n:
	tong_n = 0
	j = 1.000
	while j <= i:
		tong_n = tong_n + j
		j = j + 1
	tong_S = tong_S + 1/tong_n
	i = i + 1
print " Tong S la` :" , float(tong_S)

Tks bạn nhiều nha ! Thế này mà mình loay hoay mai~, tưởng nó không hiện được thập phân chứ :sweat_smile:

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