Ваш вопрос неясен, поскольку вы дали реальное значение без суффикса f
и попытались присвоить его переменной float
.Если вы на самом деле используете float
переменную, то точное значение равно
50.883697509765625
Если вы на самом деле используете double
переменную, то точное значение:
50.8836974999999966939867590554058551788330078125
Я получаю те же результаты, что и вы, для F9 , если вы используете float
, но не если вы используете double
.
Причинадля пониженной точности раскрывается в документации для System.Single
(float
):
По умолчанию значение Single содержит только 7 десятичных цифр точности, хотямаксимум 9 цифр поддерживается внутри.
Я полагаю, что F
правильно отображает все реальные цифры точности, пытаясь не дать вам поверить, что вы на самом деле получили больше информации, чем имеете.