Mutliply by 100; cast to int to truncate, then divide by 100 back to a double.
#include <stdio.h>
#include <math.h>
int main(void)
{
double value[] = {123.45678,234.12345,34.34567};
int j;
for ( j = 2; j <= 3; ++j )
{
size_t i;
printf("%d decimal places:\n", j);
for ( i = 0; i < sizeof value / sizeof *value; ++i )
{
double scale = pow(10.0, j);
double result = (int)(value[i] * scale) / scale;
printf("result = %g\n", result);
}
}
return 0;
}
/* my output
2 decimal places:
result = 123.45
result = 234.12
result = 34.34
3 decimal places:
result = 123.456
result = 234.123
result = 34.345
*/
Last edited by Dave Sinkula; Dec 4th, 2004 at 6:47 pm. Reason: Added code.
Reputation Points: 2780
Solved Threads: 312
long time no c
Offline 4,790 posts
since Apr 2004