当前位置: 首页 > 面试题库 >

为什么Bigdecimal(double d)构造仍然存在?

蒋健
2023-03-14
问题内容

我注意到这个构造函数非常痛苦(即使在Stack Overflow上也是如此)。即使文档明确指出,人们仍会使用它:

此构造函数的结果可能无法预测
http://java.sun.com/javase/6/docs/api/java/math/BigDecimal.html#BigDecimal(double)

我什至看到JSR-13得到批准,并提出了以下建议:

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

尽管如此,构造函数尚未被弃用。

我很想听听对此的任何看法。


问题答案:

弃用不推荐使用。仅在特殊情况下,部分API才标记为不推荐使用。

因此,在构建过程中运行FindBugs。FindBugs具有检测器插件API,并且也是开源的(LGPL,IIRC)。



 类似资料:
  • 设置: 具有一个片段的活动,该片段通过单击按钮进行实例化。在fragment的构造函数中,使用了Bundle。在Bundle和ArrayList中 问题:分离片段时,字符串(姓氏)会按预期销毁,但数组列表会持续存在。因此,在调用片段的新实例时,会出现前一个ArrayList条目。回调不是问题所在。该行为也会在没有回调的情况下出现。 我已经检查了变量(和)和在点片段构造函数(),片段在方法()和片段

  • 问题内容: 我知道十进制数不能用有限的二进制数精确地表示(解释),因此会失去一些精度,并且不会精确地表示。另一方面,因为是,所以可以精确表示。 话虽如此,将 三遍 相加并不完全是可以理解的,因此,以下代码将输出: 但是, 五次 相加会得到确切的结果呢?以下代码显示: 如果不能精确表示,将其相加5次给出的精确表示又如何呢? 问题答案: 舍入误差不是随机的,并且它的实现方式会尝试使误差最小化。这意味着

  • 来自Javadoc的: 注:如果对象用作中的键或中的元素,则应小心操作,因为的自然顺序与等于的顺序不一致。 例如,如果您创建一个并向其中添加和,则该集合将包含两个元素(因为值具有不同的比例,因此根据和,它们是不相等的),但是,如果对

  • 在默认情况下,我希望angular发出请求。不是JSON。 角度1.4.5 如何将整个应用程序配置为使用x-www-form-urlencoded而不使用自行车作为拦截器等。

  • Python有一个令人困惑的工具历史,可以用来打包和描述项目:这些工具包括标准库中的,,和(也许更多)。似乎和被停用,取而代之的是,这留下了两个相互竞争的标准。 据我所知,提供了比多得多的选项(例如,声明依赖项、测试等),但是它没有包含在Python标准库中(尚未?)。 Python打包用户指南[1]现在建议: 使用定义项目并创建源发行版。 并解释道: 尽管您可以对许多项目使用纯,但它不支持定义对

  • 我知道十进制数不能精确地用有限二进制数表示(解释),因此将失去一些精度,并且不能精确地。另一方面,可以准确地表示,因为它是。 可以理解的是,三次添加并不能准确地给出,所以下面的代码打印: 如果不能精确地表示,那么添加5次它怎么能精确地给出可以精确地表示呢?