Плавающая точка IEE754 (64 бит) должна правильно представлять 15 значащих цифр, хотя внутреннее представление имеет 17 ditigs. Есть ли способ заставить 16-ю и 17-ю цифры до нуля?цифры двойного типа в C++
Код: http://msdn.microsoft.com/en-us/library/system.double(VS.80).aspx: . .
Помните, что число с плавающей запятой может приближать только десятичное число и что точность числа с плавающей запятой определяет, насколько точно это число приближается к десятичному числу. По умолчанию двойное значение содержит 15 десятичных цифр точности, хотя не более 17 цифр поддерживается внутри. Точность числа с плавающей запятой имеет несколько последствий: . .
Пример NOS: d1 = +97842111437,390091
d2 = +97842111437,390076
d1 и d2 различаются в 16-м и 17-го знаков после запятой, которые не должны быть значительными. Ищете способы заставить их к нулю. т.е. d1 = +97842111437,390000 d2 = 97842111437,390000
Вы говорите о 64-битных поплавках? Как и в 15 значащих десятичных разрядах? – John
Я должен согласиться с Джоном У. Вопрос немного расплывчатый. Внутреннее представление не равно десятичному. –
В двухместных номерах IEEE754 есть 52 бит мантиссы: http://en.wikipedia.org/wiki/Double_precision_floating-point_format Помимо Intel, использующих 80-битные регистры с плавающей запятой с 64 бит мантиссы (около 19 цифр разрешения), I ' никогда не слышал о каком-либо другом «внутреннем представлении». Можете ли вы дать ссылку на то, что вы имеете в виду? – KeyserSoze