Какие бывают типы cxChar
и cxCaps
?Если cxChar
равно float
или double
, то проблем не возникает, поскольку результат умножения будет преобразован в этот тип до деления на 2, а результатом будет 1,0 или 1,5.Но cxCaps
также должен иметь тип с плавающей запятой, чтобы он мог содержать значение с плавающей запятой.
РЕДАКТИРОВАТЬ
Я проверил код книги, иобнаружил, что они оба int
.А также я обнаружил, что нет необходимости в переменных с плавающей запятой.
Например, предположим, что cxCahr
равно 20. Если tm.tmPitchAndFamily & 1
приведет к 1
, то выражение будет
cxCaps = 3 * cxChar / 2;
и cxCaps
будет 30
.И если результат равен 0, «cxCaps» будет «20».Так что все в порядке.Если cxChar нечетное число, то потерянное значение будет 0.5
, которым можно легко пренебречь.