On Tue, Nov 22, 2016 at 4:39 PM, Greg KH <[email protected]> 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 > integer > > 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 Celsius. 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 ? > thanks, > > greg k-h > Thanks -- Lucas Tanure
_______________________________________________ Kernelnewbies mailing list [email protected] https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
