From help pages:
1.ArgMax is effectively equivalent to Last[Maximize]
  - Maximize will return exact results if given exact input. 
- If Maximize is given an expression containing approximate numbers, it automatically calls NMaximize. 
Then:
 y /. NMaximize[-99 + 17.0*Sqrt[37 - 35 y] + 66 y, y][[2]](*wrong answer*)
 y /. NMaximize[-99 + 17.0*Sqrt[37 - 35 y] + 66 y, y, WorkingPrecision -> 20][[2]](*Correct answer,error messages*)
 y /. NMaximize[-99 + 17.0`20*Sqrt[37 - 35 y] + 66 y, y, 
    WorkingPrecision -> 20][[2]](*Correct answer,No error messages*)
 y /. NMaximize[-99 + SetPrecision[17, 20]*Sqrt[37 - 35 y] + 66 y, y, 
    WorkingPrecision -> 20][[2]](*Correct answer,No error messages*)
Summary:
ArgMax is exact symbolic solver. Will return exact results if given exact input.