Существует несколько возможных интерпретаций этого вопроса или вариантов вопросов, которые можно задать, поэтому я перечислил некоторые из них и обратился к ним по отдельности.
Если дробная часть числа с плавающей запятой равна нулю, делает личисло представляет математическое целое число?
Да.Согласно стандарту IEEE-754 с плавающей точкой и, как правило, с другими форматами с плавающей точкой, объект с плавающей точкой представляет одно конкретное число (или бесконечность или NaN).Он не представляет интервал чисел.Таким образом, если объект с плавающей запятой не является NaN или бесконечностью, а его дробная часть равна нулю, то значение, которое он представляет, является целым числом.
Когда доказательства пишутся об арифметике с плавающей запятой, то факт, чторазличные значения, являющиеся целыми числами, обычно используются как часть доказательства.
Если результатом вычисления с плавающей запятой является целое число, будет ли такое же вычисление, выполненное с арифметикой действительных чисел, производить целое число?
Не в общем.Из-за ограниченной точности и округления вычисления с плавающей точкой и вычисления действительных чисел могут отличаться на произвольные величины.
В определенных случаях может быть возможно проанализировать операции с плавающей точкой и получить утверждения о том, что такое плавающая точкарезультаты с точкой указывают на результаты действительного числа.
Если число с плавающей точкой отображается с «.0», это целое число?
Не обязательно.Когда числа с плавающей запятой форматируются для отображения, они обычно округляются до ограниченного числа десятичных цифр.Это может скрывать точное значение, и некоторые числа с ненулевой дробной частью могут отображаться с «.0».
Если число с плавающей запятой является целым числом, может ли оно использоваться как целочисленный тип?
Это зависит от используемого языка программирования.В строго типизированных языках нет, значение остается типом с плавающей точкой.В языках сценариев несколько распространено иметь некоторую гибкость в использовании результатов с плавающей запятой в качестве целых чисел.
Является ли результат в коде целым числом?
В показанном кодев вопросе ошибок округления нет.Значение для x
, 3.4296875, равно 439/128, и это можно безошибочно представить во всех распространенных форматах с плавающей запятой.Таким образом, умножение на 128 дает точный результат, 439. Вычитание 695 из этого дает -256, а умножение 2*x*-256
дает ровно -1756, а затем добавление 1856 дает ровно 100. Это целое число.Это может быть неверно в других случаях, когда используются нецелочисленные данные.