- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 BigDecimal
进行一些浮点运算。如果将 5
除以 4.2
,您将得到一个异常(因为结果有一个不能用 BigDecimal
表示的非终止扩展) )即
BigDecimal five = new BigDecimal("5");
BigDecimal fourPointTwo = new BigDecimal("4.2");
five.divide(fourPointTwo) // ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
我准备在这种情况下失去一些精度,所以我将使用 divide(...)
方法,它允许提供结果的比例:
five.divide(fourPointTwo, 2, RoundingMode.HALF_UP); //Fine, but obviously not 100% accurate
我应该将多大的比例传递给此方法,以便结果与我使用两个 double
执行计算一样准确?
最佳答案
来自javadocs of the BigDecimal class :
If zero or positive, the scale is the number of digits to the right of the decimal point. If negative, the unscaled value of the number is multiplied by ten to the power of the negation of the scale. The value of the number represented by the BigDecimal is therefore (unscaledValue × 10-scale).
double
的精度根据值的数量级而变化。根据this ,它使用 52 位来存储无符号尾数,因此任何可以用 52 位表示的整数都可以。这大约是 18 位十进制数字。
此外,double
使用 11 位来存储指数。所以,像小数点后 4 位这样的精度就可以了。这样,可以表示最多 52 位的任何整数乘以 2 的正幂或负幂,最多 10 位(一位是指数的符号)。除此之外,您开始失去精度。
double
的额外位存储符号。
这样,比例 18 + 4 = 22 将至少与 double
一样精确。
关于java - BigDecimal.divide(...) - 适合具有非终止扩展的商的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561433/
我使用 scipy.stats.spearmanr(a,b) 我得到: Warning: divide by zero encountered in divide 操作正确结束,但显示警告。 a 和
我使用 , 比如 .我认为使用 like 没问题.然而,有时不显示。 我用了在 ,但是 未显示。我应该只使用 吗?在 ? 如果有人遇到与我相同的问题,请分享您解决此问题的经验。 这是我的代码
I am trying to divide a very large even number 13144131834269512219260941993714669605006625743172006
我向 Mongo DB 创建了一个请求: { $project: { difference: { $subtract:
我有一个 JavaFX 应用程序 拆分 Pane .我想禁用 分隔线 在 拆分 Pane ,因此在应用程序运行时无法更改其位置。我怎样才能做到这一点? 最佳答案 没有 API,所以一旦显示了场景,我们
我尝试做一个简单的 Swing 窗,但布局并不容易...我的意思是我只想要一个有 3 个面板的窗口: 标题占窗口高度的 20% 内容占窗口高度的 60% 页脚占窗口高度的 20% 但我无法成功拥有我想
我尝试做一个简单的 Swing 窗,但布局并不容易...我的意思是我只想要一个有 3 个面板的窗口: 标题占窗口高度的 20% 内容占窗口高度的 60% 页脚占窗口高度的 20% 但我无法成功拥有我想
我正在尝试替换字符串中的字符。假设字符串是: "yaaaaaaaay:axaxaxaxa:yaaaaaaay" 我希望java将:之后的所有a更改为X,直到下一个:。所以它看起来像这样: "yaaaa
我在下面的代码中尝试 Perl 的 PDL: #!/usr/bin/perl -w use strict; use PDL::Core qw(pdl); use PDL::Math qw(isfin
这个问题已经有答案了: Is floating point math broken? (33 个回答) 已关闭 7 年前。 我在使用 BigDecimal 执行除法时得到不正确的结果。数字1 = 22
只是一个简单的问题,我无法理解,希望你们能帮忙。 我有一个div (带有 ID),单击时将打开一个新的 div - 很好,效果很好,我真正想要的是“填充”新的 div带有基于单击的 div ID 的预
我正在使用 BigDecimal 进行一些浮点运算。如果将 5 除以 4.2,您将得到一个异常(因为结果有一个不能用 BigDecimal 表示的非终止扩展) )即 BigDecimal five =
我的目标是获得类似于下图所示的分隔线: Goal Picture Divider 我需要在 LinearLayout 之间放置一个水平和垂直分隔线 这是我的用户界面 XML 代码:
我正在尝试以 Angular Testing 弹出组件,但我不知道为什么当我启动测试时出现错误: 'mat-divider' is not a known element: 1. If 'mat-di
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我知道 md-divider 用于 md-list 但我希望它在 flex-layout 中 例如: 应该在两个 div 之间有一个水平分隔线,对于另一种情况
当我尝试除以 0 时,以下代码没有捕获异常。我需要抛出异常,还是计算机会在运行时自动抛出异常? int i = 0; cin >> i; // what if someone enters zero
当我尝试除以 0 时,以下代码没有捕获异常。我需要抛出异常,还是计算机会在运行时自动抛出异常? int i = 0; cin >> i; // what if someone enters zero
这个问题在这里已经有了答案: Division by zero: Undefined Behavior or Implementation Defined in C and/or C++? (8 个
我的代码将以这种方式工作: input : a[]="create /dir/bar" 并保存在这个字符串中: b[]=create c[]=/dir/bar 还有一种情况是我保存了另外一个字符串:
我是一名优秀的程序员,十分优秀!