GWT 中的 BigDecimal 序列化

Posted

技术标签:

【中文标题】GWT 中的 BigDecimal 序列化【英文标题】:BigDecimal serialization in GWT 【发布时间】:2009-10-29 18:30:59 【问题描述】:

在 GWT 中序列化 BigDecimal 的首选方法是什么?

是否有任何巧妙的解决方法,或者您只是使用 Double 或 String?

在所有 GWT 的痛苦中,这是迄今为止最大的;我讨厌创建两个模型,一个用于服务器,一个用于 GWT,并将数据从一个转换到另一个。另一方面,虽然我不太关心使用 String 而不是 javax.xml.datatype.Duration,但由于计算的原因,我必须在服务器上使用 BigDecimal,这意味着两个模型和转换,或者每次计算都会有大量微小的转换为 BigDecimal。

【问题讨论】:

现在没有这个问题。 GWT 现在支持 BigDecimal。 【参考方案1】:

从 GWT 2.1 开始支持 java.math.BigDecimal。release-notes

【讨论】:

【参考方案2】:

这是我构建的 GWT java.math 包实现:

http://code.google.com/p/gwt-java-math/

它基于 Apache Harmony 的实现,但已修改为运行 在 Java Script 中使用 doubles 而不是 longs 可以有效地实现。

它包括一个几乎完整的 BigInteger、BigDecimal、MathContext、 RoundingMode 和 Random。

【讨论】:

此项目已合并到 GWT 2.1【参考方案3】:

为了回答我自己的问题,我刚刚找到了gwt-math project,它增加了对 BigDecimal 的支持并解决了我的问题...

另外,here 是 GWT 中支持 BigDecimal 的官方请求。

【讨论】:

以上是关于GWT 中的 BigDecimal 序列化的主要内容,如果未能解决你的问题,请参考以下文章

BigDecimal

BigDecimal乘法

如何将 BigDecimal 格式化为总是有两位小数? [复制]

如何序列化 AutoBean (GWT) 中的列表?

Java有关浮点数精度——指定精确小数位

如何使用 BigDecimal 显示始终有 2 个小数点的数字?