Clear["Global`*"]

Lauren’s code:

bisection[aa_, bb_, f_] := 
Module[{a=aa,b=bb,fa  = f[aa],
fb =  f[bb],
c = aa + 0.5 * (bb-aa)},
While[a < c && c <b,
fc = f[c];
If[Sign[fc] == Sign[fa],
{a, fa} = {c, fc}, 
{b, fb} = {c, fc}];
c= a + 0.5 * (b -a);];
Return[c]
]

f[x_] := (((x/12)*87750)/(1-(1+x/12)^(-180)))-980.96
a = .10;
b = .15;
bisection[a,b,f]

Now let’s try that other function:

f[x_] :=x * Exp[-x] -0.16064
a = 0;
b = .3;
bisection[a,b,f]