I disagree with (A).
According to the php docs
floatval('122.34343The') == 122.34343
floatval('BLARTLBARTFAST') == 0
Why should it take the input and choose a different response than what floatval would respond with?
If floatval returns null on 'BLARTLBARTFAST' and '122.34343The' then this function should return null. If floatval returns 0 (or whatever) than this function should return the same.
It's inconsistent behavior.