刚学python遇到了困难

问题遇到的现象和发生背景 为什么我python format用法错误?
用代码块功能插入代码,请勿粘贴截图 m='0.848557'

i = '2.8949856'
print('哥们,这瓜{:.3f}一斤'.format(m))
print('哥们,这瓜{2:.3f}一斤'.format(m,i))#不知道为什么出错

运行结果及报错内容 Unknown format code 'f' for object of type 'str'
我的解答思路和尝试过的方法 去除f后第一个可以运行,第二个不管是加不加f都不能运行,看b站讲要加f
我想要达到的结果 怎么才能够运行

print('哥们,这瓜{2:.3f}一斤'.format(m,i))
改成:
print('哥们,这瓜{2:.3f}一斤'.format(m,float(i)))

加上float转换
例如 float(i)