Возможно, мне следовало добавить некоторые технические детали. По сути, в длинной эмуляции GWT используется кортеж из двух чисел, первый из которых содержит старшие 32 бита, а второй - младшие 32 бита длиной 64 бита.
Библиотека, конечно, содержит методы для добавления таких вещей, как добавление двух "длинных" и получение "длинных" результатов. В вашем коде GWT Java это просто выглядит как два обычных long - один не нужно возиться или знать о кортеже. Используя этот подход, GWT позволяет избежать проблемы, на которую вы, вероятно, намекаете, а именно «длинных», отбрасывающих младшие биты точности, что во многих случаях неприемлемо.
Хотя числа с плавающей точкой по определению являются неточными / приближенными к значению, целое число, например long, не является. GWT всегда содержит 64-битную длину - математика, использующая такую длину, никогда не использует точность. Исключением является переполнение, но оно точно соответствует тому, что происходит в Java и т. Д., Когда вы добавляете два очень больших длинных значения, для которых требуется более 64 бит - например, 2 ^ 32-1 + 2 ^ 32-1.
Чтобы сделать то же самое для чисел с плавающей запятой, потребуется аналогичный подход. Вам понадобится библиотека, которая использует кортеж.