1

我对sql(数学)有疑问。

我有一个支付给供应商的总应付款项33.333,我需要将金额与两个用户分开。所以我有选择

select (16.666 * 2) from dual这给了我33.332少于.1我必须给予的总金额。

如果我有这个 sql select (16.667 * 2) from dual,那么它给我33.334.1大于33.333.

我如何划分我可以平均分配的总金额?

谢谢

4

3 回答 3

1

反过来做:

select 33.333/2
于 2012-06-14T13:47:27.843 回答
1

我不确定您从哪里执行查询,但它在这里工作(SQLDeveloper,10g):

SELECT (33.333 / 2) FROM dual;
16,6665

SELECT (16.6665 * 2) FROM dual;
33,333
于 2012-06-14T13:48:20.163 回答
0

您很可能使用了错误的列类型。您应该使用 DECIMAL 而不是例如 FLOAT。

这是一个很好的总结: http: //lists.mysql.com/mysql/189592

根据您使用的 SQL 标准,类型可以是 MONEY、DECIMAL 或 NUMBER。

于 2012-06-14T23:16:46.283 回答