【发布时间】:2013-03-02 17:25:27
【问题描述】:
是否可以将两个整数相除以生成 BigDecimal?我正在尝试优化我的代码。如果我可以减少声明新 BigDecimal 的次数,它应该会显着加快我的流程。到目前为止,我最了解的如何减少计算是:
BigDecimal tester = new BigDecimal("103993")
.divide(new BigDecimal("33102"), 2000, BigDecimal.ROUND_DOWN);
我想知道是否可以这样做:
int example1 = 103993;
int example2 = 33102;
BigDecimal example3 = example1/example2;
或者类似的东西。我唯一的目标是加快执行时间。
【问题讨论】:
-
不要陷入过早优化的陷阱。在您分析您的代码(并且实际上有问题)之前,您不知道什么会花费您的时间。
-
我不确定除了先将两者都转换为
BigDecimal之外还有其他方法。所以优化没有实际意义…… -
我相信这是你唯一的选择,还有一个问题是codechef?
-
由于您使用整数作为参数,因此您不需要使用
BigDecimal(String s)构造函数,而只需使用BigDecimal(int i)。这样应用程序就不必将字符串解析为数值。 -
@Pshemo
valueOf是构造函数的更好替代方案,因为BigDecimal“可能”(确实如此)保留了一桶特定值,它可以简单地返回而不是重建。对于所有Number格式也可以这样说。
标签: java bigdecimal integer-division