On 03/20/2013 12:06 AM, li guang wrote: >> + return snprintf(dest, len, "%0.03f%c", (double)*ptr/div, suffixes[i]); > ^^^^^^ ^^^^^^^^^^^^^^^ >> +} >> + > > IMHO, you may need (double)(*ptr/div), for type cast is right > associated.
No, the code as written is correct, and your proposal would be wrong. As written, it is evaluated as: ((double)*ptr) / div which promotes the division to floating point. Your proposal would do the division (*ptr/div) as an integral (truncating) division, and only then cast the result to double. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature