相关疑难解决方法(0)

用Java表示货币价值

我知道BigDecimal是用于在Java中表示货币价值的推荐最佳实践.你用什么?您是否更喜欢使用更好的库?

java currency bigdecimal

92
推荐指数
5
解决办法
4万
查看次数

如何在Java,SQL,ORM中使用money数据类型

在Java应用程序中使用money数据类型的最佳实践是什么?钱应该是双变量?四舍五入,货币等等.这是特殊的图书馆吗?那么在大多数流行的数据库中ORM和SQL呢?据我所知,并非所有SQL引擎都是Money数据类型.在那种情况下NUMERIC(15,2),DECIMAL(15,2)应该使用REAL数据类型?

java sql orm types currency

19
推荐指数
2
解决办法
2万
查看次数

为什么Bigdecimal(双d)结构仍然存在?

我注意到这个构造函数有很大的痛苦(即使在Stack Overflow上也是如此).人们使用它,即使文档明确指出:

这个构造函数的结果可能有点不可预测 http://java.sun.com/javase/6/docs/api/java/math/BigDecimal.html#BigDecimal(double)

我甚至看到JSR-13批准了一条建议,说明:

可能不推荐使用的现有规范:我们建议弃用BigDecimal(double)构造函数,该构造函数目前提供的结果与Double.toString()方法不同.

尽管如此,构造函数还没有被弃用.

我很想听到有关这方面的任何看法.

java api bigdecimal

14
推荐指数
2
解决办法
1万
查看次数

计算大数的加权平均值

我想要得到几个数字的加权平均值.基本上我有:

Price    - 134.42
Quantity - 15236545
Run Code Online (Sandbox Code Playgroud)

可以有少至一个或两个或多达五十或六十对价格和数量.我需要弄清楚价格的加权平均值.基本上,加权平均值应该给对象提供非常小的权重

Price    - 100000000.00
Quantity - 3
Run Code Online (Sandbox Code Playgroud)

以及更多对上面的那对.

我现在的公式是:

((price)(quantity) + (price)(quantity) + ...)/totalQuantity
Run Code Online (Sandbox Code Playgroud)

到目前为止,我做到了这一点:

        double optimalPrice = 0;
        int totalQuantity = 0;
        double rolling = 0;
        System.out.println(rolling);

        Iterator it = orders.entrySet().iterator();
        while(it.hasNext()) {
            System.out.println("inside");
            Map.Entry order = (Map.Entry)it.next();
            double price = (Double)order.getKey();
            int quantity = (Integer)order.getValue();
            System.out.println(price + " " + quantity);

            rolling += price * quantity;
            totalQuantity += quantity;
            System.out.println(rolling);
        }
        System.out.println(rolling);
        return rolling/totalQuantity;
Run Code Online (Sandbox Code Playgroud)

问题是我很快就将"滚动"变量最大化了.

我怎样才能真正得到加权平均值?

java average weighted-average

6
推荐指数
1
解决办法
5430
查看次数

Java随机数介于0和0.06之间

在Java中,我需要在0和之间随机生成一个数字0.06.

我在这里看到另一个问题,下面的代码可以解决这个问题:

Random generator = new Random();
double number = generator.nextDouble() * .06;
Run Code Online (Sandbox Code Playgroud)

然而,这样做给了我很长的数字,0.007044013589130205而且0.03656588431980957,我认为这不是我的导师所期待的.

反正有没有生成0到0.06之间只有两位或三位小数的随机数?

java random

3
推荐指数
1
解决办法
1万
查看次数

Java - 金钱类的名称

我应该如何命名我的班级,以CAD /美元的价格存储成本/价格/金额作为单独long的美元和美分?我有"PriceInDollars",但我不是那么喜欢,而且我总是忘记它.有任何想法吗?

编辑:显然我应该使用BigDecimal,而不是重新发明轮子.我想我会用它.尽管如此,我确实学到了很多东西.

在这里查看我的其他问题!

java classname

0
推荐指数
1
解决办法
1059
查看次数

在MongoDB中提升商店BigDecimal

我正在使用MongoDB在Lift中开发一个电子商务网站

我需要存储一些产品价格数据

我的问题是:

如果我想存储数据类型BigDecimal,我应该在MongoDB中使用什么字段类型

在mapper中是一个类型为:MappedDecimal的字段,但是

在net.liftweb.mongodb.record.field中没有等价物

我如何存储这些信息?

谢谢大家的关注和帮助

scala lift mongodb lift-record

0
推荐指数
1
解决办法
737
查看次数