The US Senate approved a controversial bill to punish China over its currency in an effort to save US jobs, sending it to the House of Representatives where its fate is uncertain.