gpt4 book ai didi

java - 任意精度数字和 Javascript,Google Web Toolkit

转载 作者:行者123 更新时间:2023-11-29 05:56:47 25 4
gpt4 key购买 nike

这并不是一个真正的问题,因为我确实在解决这个问题,但我想我会让每个人都知道,因为它可能会对人们使用 Google Web Toolkit 的方式产生相当广泛的影响。

所以问题之一在于方式 Google gson代表 JSON 中的数字。例如,int myInt = 2 将变为 "myInt":2long myLong = 5432198765L 将变为 "myLong":5432198765 BigInteger myBI = 1310381093810938109481049128409487109378109248104098130981039810983 将变为 "myBI":131038109381093810948104 9128409487109378109248104098130981039810983。虽然 gson 本身可以毫无问题地反序列化它,但 JSON 中的 GWT 2.4 中的 AutoBeans 框架不会喜欢它。 Issue 6331为即将发布的 GWT 2.5 版本中的长表示修复它。然而,issue 7555由于 Javascript 数字精度的工作方式,将不会得到解决。

因此,我们需要将 BigIntegers 表示为字符串,它会起作用,例如,String myBIStr = new BigInteger("1310381093810938109481049128409487109378109248104098130981039810983").toString() 将表示为 "myBIStr ":"1310381093810938109481049128409487109378109248104098130981039810983"。在 GWT 端,这将产生一个字符串,我们必须从中构建一个 BigInteger。

Google 不解析 7555 的原因完全有道理,但这让我想到了一个真正悬而未决的问题:如何处理 Javascript 中的高精度数字?

一般来说,如果基于 Web 的 Javascript 和 Google Web Toolkit 前端要挑战原生前端,那么可能会出现我们使用任意精度数字而不是受限于大约 53 位精度的情况那comment 3谈论。更糟糕的是,这个限制不会影响 node.js 或任何其他服务器端 Javascript 吗?

是否有很好的变通方法,尤其是使用 Google Web Toolkit 或与 Google Web Toolkit 无缝协作的变通方法?

最佳答案

GWT 可以对大于 53 位的整数进行数学运算,因为它模拟了 Long(我认为还有 BigInteger)。数学速度较慢,因为它不能只使用 native JS 操作,但没有硬性限制。

因此,GWT 已经实现了解决方法,并且它是内置的。您只需要在需要大整数时避免传递数字 JSON。

关于java - 任意精度数字和 Javascript,Google Web Toolkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11788744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com