我不明白为什么这样做了。
从自身中减去x如何仅将小数点留在浮点数中?
x = float(input("Enter a decimal"))
print (x - int(x))
答案 0 :(得分:1)
int()在转换浮点数时会截断小数。
因此,如果您尝试一下,将会看到:
#sorting the checkouts list in date order.
for i in range(len(lst)-1):
l=lst[i].find("2019")
for j in range(i+1,len(lst)):
if lst[i][l:] > lst[j][l:]:
(lst[i],lst[j])=(lst[j],lst[i])
return lst
#sorting the names.
def sortn(lst):
for i in range(len(lst)-1):
for j in range(i+1,len(lst)):
if lst[i][8:] > lst[j][8:]:
(lst[i],lst[j])=(lst[j],lst[i])
return lst
#sorting the duplicates in date according to the question.
def check_dup(lst1,lst2,lst3):
l=lst1[0].find("2019")
for i in range(len(lst1)-1):
for j in range(i+1,len(lst1)):
#if dates are same then check names
if lst1[i][l:]==lst1[j][l:]:
for k in range(len(lst2)):
if lst2[k][:7]==lst1[i][:7]:
n1=k
if lst2[k][:7]==lst1[j][:7]:
n2=k
if n1>n2:
(lst1[i],lst1[j])=(lst1[j],lst1[i])
#if the names are also same then check
if lst1[i][:8]==lst1[j][:8] and lst1[i][15:]==lst1[j][15:]:
for k in range(len(lst3)):
if lst3[k][:7]==lst1[i][8:15]:
m1=k
elif lst3[k][:7]==lst1[j][8:15]:
m2=k
if m1>m2:
(lst1[i],lst1[j])=(lst1[j],lst1[i])
return lst1
s=input()
s=input()
Books=[]
while ( s != 'Borrowers' ) :
Books.append( s )
s=input()
Books.sort()
Borrowers=[]
s=input()
while ( s != 'Checkouts' ) :
Borrowers.append( s )
s=input()
Borrowers=sortn(Borrowers)
s=input()
checkouts=[]
while(s != 'EndOfInput'):
checkouts.append(s)
s=input()
checkouts=sortl(checkouts)
checkouts=check_dup(checkouts,Borrowers,Books)
#printing acc to question.
for i in checkouts:
l=checkouts[0].find("2019")
print(i[l:],end="~")
for j in Borrowers:
if i[:7]==j[:7]:
print(j[8:],end="~")
break
for k in Books:
if i[8:15]==k[:7]:
print(k)
break
如果为负数,它将保留符号:
x = 3.5
int(x) --> 3.0
x - int(x) --> 3.5 - 3.0 = 0.5
请注意,x%1将对正数产生相同的结果,但对负数不会产生相同的结果。
答案 1 :(得分:0)
在第一行中,您将x
的输入值转换为浮点值:
x = float(input("Enter a decimal: "))
在第二行中,int(x)
将浮点值转换为整数,并且您正在从x
的整数值中减去浮点值:
print (x - int(x))
因此,如果x
= 4.5,则int(x)
将为4。因此,(x - int(x))
= (4.5 - 4)
= 0.5。
>>> x = float(input("Enter a decimal: "))
Enter a decimal: 4.5
>>> int(x)
4
>>> print (x - int(x))
0.5
>>>
另一个例子:
>>> x = float(input("Enter a decimal: "))
Enter a decimal: 3.7
>>> int(x)
3
>>> print (x - int(x))
0.7000000000000002
如您在这些示例中所见,int()
截断为0,如docs中所述。因此,4.5变为4,而3.7变为3。
答案 2 :(得分:0)
输入内容要求您输入一个数字,即5,该数字将转换为浮点数(5.0)。
然后您打印5.0-5,即0.0(浮点数减去整数表示浮点数)
如果输入带有十进制值的内容,则由于int(x)舍入到最后一个整数,因此将保留该十进制值。 int(5.9)给出5,所以您将得到5.9-5 = 0.9