Аналогичный вопрос Long in Float, почему? здесь не отвечает на то, что я ищу.
Стандарт C# допускает неявное преобразование из long в float.
Но любое значение long больше 2^24, представленное в виде числа с плавающей запятой, обязательно потеряет свое «значение».
В стандарте С# четко указано, что преобразование long to float может потерять «точность», но никогда не потеряет «величину».
Мои вопросы
- Применительно к целочисленным типам, что подразумевается под «точностью» и «величиной». Разве число n не полностью отличается от числа n+1, в отличие от действительных чисел, где 3,333333 и 3,333329 можно считать достаточно близкими для вычислений (т.е.в зависимости от того, чего хочет программист точности)
- Не разрешает неявное преобразование из long в float приглашение к скрытым ошибкам, поскольку это может привести к тому, что long "молча" потеряет значение (как программист C #, я привык к тому, что компилятор делает отличный оградить меня от подобных проблем)
Так что же могло послужить причиной того, что команда разработчиков языка C# разрешила это преобразование как неявное? Что мне здесь не хватает, что оправдывает неявное преобразование из long в float?
задан Community 23 May 2017 в 12:07
поделиться