Числовой литерал 1.1 на самом деле не представляет величину 11/10, а вместо этого представляет величину вокруг [(2 ^ 53 * 11) / 10] / (2 ^ 53), которая чуть больше 11 /10.Хотя это значение может быть записано точно в виде десятичного числа с 53 значащими цифрами, это будет примерно так же полезно, как использование измерительной ленты, обозначенной в дюймах, для определения, что что-то длиной 1 3/16 "и запись измерения как 30,1625 ммЕсли не удастся различить измерение, которое было бы длиннее, короче или короче менее чем на 1/64 дюйма, то измерение составило бы 30,1625 мм +/- 0,396875 мм, что функционально равно 30,2 мм +/-0,4 мм.
Любопытно, что Visual Studio выберет для представления числовое значение, ближайшее к 1.1, как 1.1000000000000001.С одной стороны, литерал 1.1 будет более кратким представлением того же значения.С другой стороны, даже если вышеупомянутый литерал будет неотличим от 1.1, более подробное представление не лишено преимущества.В некоторых случаях может быть полезно узнать, немного ли больше или немного меньше того, чем оно «кажется».Хотя разница между числовым литералом 1.1 и математическим значением 11/10 численно незначительна (умножение числового литерала на десять дает ровно 11), разница между (1.1-1.0) и (1/10) заметна (умножениечисловое выражение на 10 дает значение больше единицы).