Posts

Showing posts with the label Floating Point

C Function To Convert Float To Byte Array

Answer : Easiest is to make a union: #include <stdio.h> int main(void) { int ii; union { float a; unsigned char bytes[4]; } thing; thing.a = 1.234; for (ii=0; ii<4; ii++) printf ("byte %d is %02x\n", ii, thing.bytes[ii]); return 0; } Output: byte 0 is b6 byte 1 is f3 byte 2 is 9d byte 3 is 3f Note - there is no guarantee about the byte order… it depends on your machine architecture. To get your function to work, do this: void float2Bytes(byte bytes_temp[4],float float_variable){ union { float a; unsigned char bytes[4]; } thing; thing.a = float_variable; memcpy(bytes_temp, thing.bytes, 4); } Or to really hack it: void float2Bytes(byte bytes_temp[4],float float_variable){ memcpy(bytes_temp, (unsigned char*) (&float_variable), 4); } Note - in either case I make sure to copy the data to the location given as the input parameter. This is crucial, as local variables will not exist after you return (alt...

Convert Float To String In Php?

Answer : echo number_format($float,0,'.',''); note: this is for integers, increase 0 for extra fractional digits $float = 0.123; $string = sprintf("%.3f", $float); // $string = "0.123"; It turns out json_decode by default casts large integers as floats. This option can be overwritten in the function call: $json_array = json_decode($json_string, , , 1); I'm basing this only on the main documentation, so please test and let me know if it works.