Дробная часть выражения? Легко!
Источник: http://lurkmore.ru/Индусский_код
Далеко не сразу можно понять, что этот код выделяет дробную часть произведения a*b. кроме того, функция выдаст ошибочное значение при a*b>999999999 или a*b<0. Также зависимость времени выполнения от величины целой части тоже не радует.
double rest(float a, float b) {
float res=a*b;
for (int i=0; i<999999999; i++){
if (i<=res && i+1>res) {
res = res-i;
break;
}
}
return res;
}