Re: IEEE-754 Float to int

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Tue, Nov 22, 2016 at 4:39 PM, Greg KH <greg@xxxxxxxxx> 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, 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
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux