2012-06-20 53 views

回答

12

简单地使用DecimalNumeric)类型代替documented in the manual,例如, cost decimal(10,2)

第一个数字(10)定义了总数为的长度为的数字(所有数字,包括小数点后的数字),而第二个数字(2)表示其中有多少个数字是小数点后的数字。上述声明给出了该点前面的8位数字。当然,你可以增加 - Numeric类型的限制要高得多。

在我看来,当您处理货币或其他与货币有关的价值时,不需要使用浮点数。我不知道这两种类型之间的性能比较,但Decimal有一个优点 - 它是一个确切的数字(通常不是浮点的情况)。我也建议阅读interesting, but short discussion on the topic

+1

我同意。 'float'(或'real')数据类型根本没有用处。 –

+0

好的。另一个问题,我如何在liferay mvc的service.xml文件中声明小数数据类型?任何想法 ? – saurjk

+0

据我所知,没有直接的解决办法。使用Java的'BigDecimal',[可以在Liferay LEP-841的评论中找到](http://issues.liferay.com/browse/LEP-841)的解决方法。这也是[在论坛讨论](http://www.liferay.com/community/forums//message_boards/message/11788130)。希望你能找到解决办法;如果不是 - 发表另一个问题,我相信有人已经做了类似的事情。 – Sorrow