(пытаясь проанализировать, как decimal
работы) & & после прочтения @jonskeet article и видеть msdn, и думать за последние 4 часа, У меня есть несколько вопросов:десятичный в C# непонимание?
в this link они говорят что-то очень простое:
1.5 x 10^2
имеет 2
значащие цифры
1.50 x 10^2
имеет 3
значительное цифры.
1.500 x 10^2
имеет 4
значащих цифр и т.д. ...
ок ... мы получаем идею.
из статьи Йона:
sign * mantissa/10^exponent
Как обычно, знак только один бит, но есть 96 бит мантиссы и 5 бит экспоненты
^_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^
1 _ 96 5
ОК
так макс mantiss вал = 2^96-1 = 79228162514264337593543950335
который: 7.9228162514264*10^28
(. по моему Iphone ... could'nt см экспоненту представление в окнах известково)
уведомление:
7.9228162514264*10^28
имеет значащие цифры (в соответствии с приведенными выше примерами)
теперь часть с 5-битным индексом не имеет значения, потому что ее значение в значении - так что мне нужен min val, который равен 2^0
вопрос № 1:
MSDN говорят: 28-29 significant digits
, но по моему образцу (1.500 x 10^2
имеет 4
значащие цифры) они имеют значащих цифр, который является 7.9
(7 и 9).
если бы MSDN написано:
±79228162514264337593543950335 × 10^0
я бы это понять, поскольку все значимые цифры в выражении.
Почему они пишут 28-29, но отображают 2?
вопрос № 2:
как будет десятичное представление (mantiss & & показатель) будет отображаться для значения 0,5?
максимальный знаменатель может быть 2^32-1 --> 31
спасибо, ребята.
вопрос № 3:
1 + 96 + 5 = 102 бит.
говорит MSDN:
Десятичный ключевое слово обозначает тип данных 128-битный.
128-102 = 26
может understnad из статьи, почему там не обычай к этому 26 биту
mantiss of 5 означает (2^5)/(1 * 10^1) - это не 0,5 ...... –
@RoyiNamir: Нет, мантисса - 5. Что заставило вас думать, что у него есть что-нибудь делать с 2^5? Я подозреваю, вы неправильно поняли, что такое мантисса. –
oh sorry ... :) после 4 часов поиска im мышления в базе 2 :) –