Вот моя проблема:C++ static_cast возвращает ноль
#include <stdio.h>
#include <math.h>
int main()
{
int n = static_cast<int>(50 * (60/99));
printf("Floor: %d\n", n);
return 0;
}
Почему функция печати 0, когда он должен напечатать 30?
Поскольку результат расчета: 30,30303030
больше как 0,6 .. как сделать вычисление отверстия для возврата 30? –
60/99 оценивается как целочисленная математика, поэтому результат равен 0. Измените либо значение на плавающую точку: '60.0f/99.f' будет делать один из способов выполнения задания. –
Одним из способов архивирования является использование другого языка, такого как JavaScript, или языка, который вы разрабатываете, который поддерживает 'static_cast', деление, которое всегда возвращает значение с плавающей запятой, и все другие функции, которые вы хотите. – MikeCAT