[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-9567) [FB] Package org.apache.ofbiz.base.metrics

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-9567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16121311#comment-16121311 ]

Jacques Le Roux commented on OFBIZ-9567:
----------------------------------------

Hi Dennis,

Why did you decide to remove parenthesis in {{serviceRate = (rate * smoothing) + (serviceRate * (1.0 - smoothing));}} ?

I find it easier to read like that. Disclaimer, I have been mostly using the [APL language|https://en.wikipedia.org/wiki/APL_(programming_language)] during my 1st 20 years of preogramming. In APL there is no notion of precedence, all expressions are evaluated from right to left (somehow like in Polish notation). So I have always find uneasy to read complicated algebric expressions in other languages ;)

> [FB] Package org.apache.ofbiz.base.metrics
> ------------------------------------------
>
>                 Key: OFBIZ-9567
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9567
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: base
>    Affects Versions: Trunk
>            Reporter: Dennis Balkir
>            Assignee: Jacques Le Roux
>            Priority: Minor
>         Attachments: OFBIZ-9567_org.apache.ofbiz.base.metrics_bugfixes.patch
>
>
> - MetricsFactory.java:236, ICAST_IDIV_CAST_TO_DOUBLE
> ICAST: Integral division result cast to double or float in org.apache.ofbiz.base.metrics.MetricsFactory$MetricsImpl.recordServiceRate(int, long)
> This code casts the result of an integral division (e.g., int or long division) operation to double or float. Doing division on integers truncates the result to the integer value closest to zero. The fact that the result was cast to double suggests that this precision should have been retained. What was probably meant was to cast one or both of the operands to double before performing the division. Here is an example:
> int x = 2;
> int y = 5;
> // Wrong: yields result 0.0
> double value1 =  x / y;
> // Right: yields result 0.4
> double value2 =  x / (double) y;



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)