I am trying to get a floating variable accurate to just 3 decimal points for a comparison calculation. I am trying the method below, but it doesn\'t work. I can\'t see why not,
When you perform
fbb = bb/1000;
It treats operation as int/int and returns an int
Try
fbb = ((double)bb)/1000.000;
It will be treated as (double)/(double) and return a double.
When you perform
fbb = bb/1000;
It treats operation as int/int and returns an int. its demotion of value.
Also take long bb; instead of int as int has value 32767 as its high value.
Try
fbb = bb/1000.000;
or
fbb = (double)bb/1000;
bb is int. So bb/1000 is doing a int division, which results again in an int = 1000 (no decimals). That int value is cast to a double.
bb is an int, so bb / 1000 will follow the integer division. Change either or both operand to a double. The simplest way is:
fbb = bb / 1000.0; //type of 1000.0 is double
or
fbb = (double)bb / 1000
Use
fbb=(double)bb/1000;
bb is integer and result is integer, and then converted to double