Click here to Skip to main content
15,567,466 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Hello again,
I was testing to truncate a value with how many decimals case i want.
Nice, i found a function that make this, but, use double, and i need to use float,
double is crashing everything with StackOverFlow errors that i can't fix.
And with float that works..
This is the code of the function.
double trunc(double value, int decimal_places){
    double integer = 0,fractional = 0,output = 0;
    int j = 0,places = 1;
    fractional = modf(value, &output);
    for( int i = 0; i < decimal_places + 1; i++ ){
        fractional = modf(fractional, &integer);
        for( j = 0; j < i; j++ ){
            places *= 10;
        output += integer / places;
        places = 1;
        fractional *= 10;
    return output;

Sergey Alexandrovich Kryukov 13-Dec-12 13:57pm    
If double is "crashing everything" (due to your mistakes, apparently), so you are resorting to float? Very nice. I'll tell you this: with such attitude, consider your career of a software development is ended, no sense to continue. Or rethink it.
Good luck,
Thales Maggi 13-Dec-12 14:25pm    
I'm out of time to stay fixing little problems, just a work to univesity, so if you don't came to help, dont sh*t my question. Thank you.
[no name] 13-Dec-12 21:21pm    
SA may have a point. Where is your OWN code?
Thales Maggi 13-Dec-12 21:25pm    
Yess! I forgot to say that! That function isn't mine! I asked help to my teacher, and he sent me a email. Obviously he found at somewhere. I found my answer, thanks!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900