Gwt 双倍或长

Gwt 双倍或长,gwt,Gwt,在GWT中,强烈建议使用双(盒式)而不是长(盒式)吗。我已经阅读了很多官方资源(我想都是),但我没有意识到使用长对象而不是双对象有多有害。我非常关心性能,但如果成本没有太大的差别,我会选择long。AFAIK,long和long都在GWT中实现为两个数字的数组(包含long的低半部和高半部)。原因是Javascript数字的整数精度限制为53位,但Long包含64位。所有的数学运算都转化为复杂的多数字数组运算,这相当昂贵 也就是说,这实际上取决于你如何处理长码:如果你只是把它们当作ID或类似的东

在GWT中,强烈建议使用双(盒式)而不是长(盒式)吗。我已经阅读了很多官方资源(我想都是),但我没有意识到使用长对象而不是双对象有多有害。我非常关心性能,但如果成本没有太大的差别,我会选择long。

AFAIK,long和long都在GWT中实现为两个数字的数组(包含long的低半部和高半部)。原因是Javascript数字的整数精度限制为53位,但Long包含64位。所有的数学运算都转化为复杂的多数字数组运算,这相当昂贵


也就是说,这实际上取决于你如何处理长码:如果你只是把它们当作ID或类似的东西使用,而长码操作不是你程序的主要瓶颈之一,那么坚持长码可能没什么问题。

除非你正在构建一个20个物体以60帧的速度飞行的游戏,您不必担心Long和Double之间的差异。如果我经常收到成千上万个带有许多数字(大于int)的JSON数组,并且需要以各种方式显示它们(比如图表和表格)。比如处理实时数据。我应该如何解释呢?我会使用一个GWT JSON库,它提供对数据的访问,而不需要任何转换。对于纯客户端代码,JavaScriptObject/JsArrayXxx可能工作得很好。如果JSON数据使用大于int的数字,那么如果它实际上与JS兼容,那么它的长度就不长,并且可以放在一个双精度中。JSON没有指定数字精度,但是如果您的JSON数据要与JavaScript一起使用(正如@StefanHaustein所建议的那样受到限制),那么它必须可以用Java双精度表示。