#include <stdio.h>
#include <assert.h>
#include <math.h>
long double round_f(long double number, int decimal_places)
{
double power
= pow(10, decimal_places
-1); number *= power;
return (number >= 0) ? ((long long)(number + 0.5))/power : ((long long)(number - 0.5))/power;
}
int main(void)
{
printf("%Lf\n", round_f
(1.24, 2)); printf("%Lf\n", round_f
(1.25, 2)); printf("%Lf\n", round_f
(1.25, 1)); printf("%Lf\n", round_f
(1.55, 1));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPG1hdGguaD4KCmxvbmcgZG91YmxlIHJvdW5kX2YobG9uZyBkb3VibGUgbnVtYmVyLCBpbnQgZGVjaW1hbF9wbGFjZXMpCnsKCWFzc2VydChkZWNpbWFsX3BsYWNlcyA+IDApOwoJCglkb3VibGUgcG93ZXIgPSBwb3coMTAsIGRlY2ltYWxfcGxhY2VzLTEpOwoJbnVtYmVyICo9IHBvd2VyOwoJCglyZXR1cm4gKG51bWJlciA+PSAwKSA/ICgobG9uZyBsb25nKShudW1iZXIgKyAwLjUpKS9wb3dlciA6ICgobG9uZyBsb25nKShudW1iZXIgLSAwLjUpKS9wb3dlcjsKfQoKaW50IG1haW4odm9pZCkKewoJcHJpbnRmKCIlTGZcbiIsIHJvdW5kX2YoMS4yNCwgMikpOwoJcHJpbnRmKCIlTGZcbiIsIHJvdW5kX2YoMS4yNSwgMikpOwoJcHJpbnRmKCIlTGZcbiIsIHJvdW5kX2YoMS4yNSwgMSkpOwoJcHJpbnRmKCIlTGZcbiIsIHJvdW5kX2YoMS41NSwgMSkpOwoKCXJldHVybiAwOwp9Cg==