Представление целых чисел в удваивается

Пожалуйста, попробуйте следующее:

@Client(value ="/v1/upload")
static interface UploadClient {

  @Post(uri = "/mailings", produces = MediaType.MULTIPART_FORM_DATA)
  HttpResponse postFile(@Body MultipartBody file)

}

Добавить продукцию и аннотацию тела

19
задан Hash 21 October 2016 в 22:04
поделиться

5 ответов

64-разрядный двойной код IEEE754 может представлять любое 32-разрядное целое число просто потому, что он имеет 53 с лишним (a) биты, доступные для точности, и 32-битное целое число требует только 32: -)

Было бы правдоподобно, чтобы (не IEEE754 с двойной точностью) 64-битное число с плавающей запятой имело меньше, чем 32 бита точности. Это позволило бы действительно огромные числа (из-за показателя степени), но ценой точности.

Суть в том, что при условии, что в мантиссе числа с плавающей запятой больше битов точности, чем в целом ( и достаточно битов в показателе степени для его масштабирования), тогда он может быть представлен без потери точности.


(a) Технически, 53-й бит точности является подразумеваемым 1 в начале последовательности, так что количество «изменчивости» может быть только 52 бита. Будь то 52 или 53, битов по-прежнему достаточно для представления каждого 32-разрядного целого числа.

39
ответ дан 30 November 2019 в 03:08
поделиться

Да. Плавающая (или двойная) гарантированно точно представляет любое целое число, которое не нужно усекать. Для двойной точности 53 бита, поэтому этого более чем достаточно для точного представления любого 32-битного целого числа, а также крошечной (статистически говоря) пропорции 64-битных.

7
ответ дан 30 November 2019 в 03:08
поделиться

Точный диапазон, который вы можете представить, зависит от множества факторов в вашей реализации, но вы можете уменьшить ограничить его, сказав, что, если поле экспоненты установлено в 0, вы можете точно представлять целые числа вплоть до ширины поля мантиссы (в предположении знакового бита). Для двойной точности IEEE 754 это означает, что вы можете точно представлять 52-битные числа. В общем, ваша мантисса будет более половины ширины всей структуры.

2
ответ дан 30 November 2019 в 03:08
поделиться

Для получения более подробной информации о том, как работает двойник, вы можете посмотреть на это сообщение в блоге: Анатомия число с плавающей запятой .

-1
ответ дан 30 November 2019 в 03:08
поделиться

Я бы не использовал слова «полностью точно», когда говорил о числах с плавающей точкой. Но да, double может представлять 32-разрядное целое число.

Я не знаю, для каких других комбинаций чисел с плавающей запятой и целых чисел это также верно.

На практике, вы не Вы хотите использовать плавающую точку над тем, что поддерживает ваша машина, поэтому просто переключитесь на рациональную арифметику с бигнумами. Таким образом, вам гарантирована точность.

-4
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: