The code
$data['payments_client']['accumulated'] = 7.0;
$data['charge_limit'] = "7" ;
$data['can_redeem'] = $data['payments_client']['accumulated'] >= floatval($data['charge_limit']);
echo ($data['can_redeem']? 'True': 'False');
emulates your example, you will get the result as 'True' in this case as advised in the comments.
However, as a general rule it is safer to use:
$data['can_redeem'] = abs($data['payments_client']['accumulated']-floatval($data['charge_limit'])) < 0.0001;
as your conditional so that there is no risk of floating point issues. Note, you can change the '0.0001' to '0.01' or '0.000001' depending on your needs.
If you still get 'False' then you need to debug your code to check the values in $data['payments_client']['accumulated'] and in $data['charge_limit'].