Round the digits last digit, over and over
Python 2, 101 97 92 91 85 bytes



lambda x,y:reduce((lambda n,l:int(n/.1**l+.5)*.1**l),range(15,y+~len(`int(x)`),-1),x)


Try it online!



Alternative :
If Python's round would round "half up" instead of "half to even":

Python 2, 57 bytes



lambda x,y:reduce(round,range(15,y-len(`int(x)`)-1,-1),x)


Try it online!