>>105
sprintfして、
for (i = strlen(s) - 1; i > 0; i--) {
if (s[i] == '0') {
s[i] = '\0';
} else {
break;
}
}
とかじゃ駄目なの?

というか物理工学の分野だと最後の0にも意味があるから(誤差やら不確かさやらがどうたら)
省略してはいけない筈。