Go Down

Topic: Float to array? (Read 481 times) previous topic - next topic


I have a few seven segment leds and I want the temperature ic float displayed. The code is set up so an integer is assigned to each digit.
(working test code)
int a=1;
int b=2;
int c=3;

Is there an easy way to have a float to array? Then my temperature ic could do something like:
float temperature = getTemp();
somehow put the float into an array


Nov 20, 2012, 09:30 pm Last Edit: Nov 20, 2012, 09:40 pm by Arrch Reason: 1

Although, since you know the precision you want, you could just multiply it by 10^n, where n is how many digits you want, assign it to an int, and send it through atoi().


Then my temperature ic could do something like:

Typically done with divisions:
Code: [Select]

 c=temperature % 10;  temperature / = 10;
 b=temperature % 10;  temperature / = 10;
 a=temperature % 10;

For that to be fast and accurate, you want temperature to be an integer.

So here is the irony of your proposal: you want to convert an integer into float, only to have to convert it back to integer so you can do what you are trying to do.


dhenry is 100% right, integer math is much faster. however the last - % -modulo - is not needed ;)

Code: [Select]

float temperature = getTemp();
int t = (int)temperature;
c= t % 10;  t /= 10;
b=t % 10;   t /= 10;
a=t;  // assume temp = 0..999
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)


It works! Thanks to all for the help. I'm trying to figure it now since I stick to hardware design and rarely write code. I have no idea what the line t /= 10; is yet but i'll figure it out. I think I have the rest of it in my head.


Go Up