You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Ke-Yi Sung (Jira)" <ji...@apache.org> on 2021/07/11 11:22:00 UTC
[jira] [Updated] (HDDS-5428) Fix potential BigDecimal problem in
StorageUnit.java
[ https://issues.apache.org/jira/browse/HDDS-5428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ke-Yi Sung updated HDDS-5428:
-----------------------------
Description:
Because of floating point imprecision, you’re unlikely to get the value you expect from the
*BigDecimal(double)* constructor.
This should be
{code:java}
BigDecimal val = new BigDecimal.valueOf(value);
BigDecimal bDivisor = new BigDecimal.valueOf(divisor);
{code}
{code:java}
BigDecimal firstVal = new BigDecimal.valueOf(first);
BigDecimal secondVal = new BigDecimal.valueOf(second);
{code}
Instead of
{code:java}
BigDecimal val = new BigDecimal(value);
BigDecimal bDivisor = new BigDecimal(divisor);
{code}
{code:java}
BigDecimal firstVal = new BigDecimal(first);
BigDecimal secondVal = new BigDecimal(second);
{code}
was:
Because of floating point imprecision, you’re unlikely to get the value you expect from the
*BigDecimal(double)* constructor.
This should be
{code:java}
BigDecimal val = new BigDecimal.valueOf(value);
BigDecimal bDivisor = new BigDecimal.valueOf(divisor);
BigDecimal firstVal = new BigDecimal.valueOf(first);
BigDecimal secondVal = new BigDecimal.valueOf(second);
{code}
Instead of
{code:java}
BigDecimal val = new BigDecimal(value);
BigDecimal bDivisor = new BigDecimal(divisor);
BigDecimal firstVal = new BigDecimal(first);
BigDecimal secondVal = new BigDecimal(second);
{code}
> Fix potential BigDecimal problem in StorageUnit.java
> ----------------------------------------------------
>
> Key: HDDS-5428
> URL: https://issues.apache.org/jira/browse/HDDS-5428
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: Ke-Yi Sung
> Assignee: Ke-Yi Sung
> Priority: Major
>
> Because of floating point imprecision, you’re unlikely to get the value you expect from the
> *BigDecimal(double)* constructor.
> This should be
> {code:java}
> BigDecimal val = new BigDecimal.valueOf(value);
> BigDecimal bDivisor = new BigDecimal.valueOf(divisor);
> {code}
> {code:java}
> BigDecimal firstVal = new BigDecimal.valueOf(first);
> BigDecimal secondVal = new BigDecimal.valueOf(second);
> {code}
> Instead of
> {code:java}
> BigDecimal val = new BigDecimal(value);
> BigDecimal bDivisor = new BigDecimal(divisor);
> {code}
> {code:java}
> BigDecimal firstVal = new BigDecimal(first);
> BigDecimal secondVal = new BigDecimal(second);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org