Кто-нибудь из вас знает, как это будет рассчитываться в C?
uint8_t samplerate = 200;
uint8_t Result;
Result = 0.5 * samplerate;
Теперь проблема в том, что 0.5 - это число с плавающей запятой, а samplerate
- целое число.Result
может тогда быть либо 0, потому что 0.5 преобразуется в целое число и поэтому округляется до 0 (Result = 0 * 200 = 0
).Или Result
может быть 100, потому что компилятор сначала видит 0.5 и конвертирует samplerate
в число с плавающей точкой (Result = 0.5 * 200 = 100
).
Есть ли стандартизированный способ, которым компилятор будет обрабатывать эти вычисления?Я имею в виду, будет ли компилятор сначала смотреть на переменную слева (в данном случае 0.5) и преобразовывать в нее другую, либо он будет смотреть на переменную справа (samplerate
) и преобразовывать другие переменные в эту.?
Я знаю, как я мог бы решить эту проблему, но я ищу общий ответ, если это стандартизировано C и как он будет вычислять такие уравнения?