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