IEEE-754 Float to int
tanure at linux.com
Tue Nov 22 11:44:43 EST 2016
On Tue, Nov 22, 2016 at 4:39 PM, Greg KH <greg at kroah.com> wrote:
> On Tue, Nov 22, 2016 at 04:05:18PM +0000, Lucas Tanure wrote:
> > Hi,
> > At some point my hardware gives me a 32bit IEEE-754 float, like this :
> > regmap_read(device->regmap, ADDR0, &temp);
> > value = temp << 16;
> > regmap_read(device->regmap, ADDR1, &temp);
> > value |= temp;
> > So, value has a 32bit float now, and I would like to print just the
> > part, like :
> > Read 26.92387 --> Print 26.
> > Simple, no float operations.
> > How I can do it ?
> Just print the upper 16 bits shifted right by 16 bits.
> But why would you want to print the value anyway? Who would use it?
My hardware gives me the board temperature as a float 32bits.
And the hwmon sysfs api asks me to return the temperature as millidegree
To follow the hwmon sysfs api rules
<https://www.kernel.org/doc/Documentation/thermal/sysfs-api.txt>, I need to
get my float, multiply by 1000 and print the integer part.
There is a better way to do that ?
> greg k-h
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies