cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X

Computed Expression help

DanR.
10-Marble

Computed Expression help

We are using MKS Integrity 2009 SP5. Yes, I know we need to upgrade, but we are under-staffed.

I am trying to make a calculation (Computed expression Integer type field) work. When I try to edit an item I get an error "Division by zero has been detected processing the query on the server". I understand the error. I don't know how I can resolve it. What I am doing is dividing 2 integer fields to return a percentage. Example: field3 (Integer) computed expression: "field1" / "field2". These 2 fields are divided to give a percentage.

If field1 = 10 and field2 = 100 then field3 should display 10%.

However, if field1 and/or field2 has zero (default) then the division error is displayed. I understand you cannot divide a number by zero.

If field1 = 0 and field2 = 100 then field3 should display 0%.

How can I get it to simply calculate or say 0%, because that is what it should be?

Thank you,

Capture.JPG

1 ACCEPTED SOLUTION

Accepted Solutions
mrump
14-Alexandrite
(To:DanR.)

Hi Daniel,

1. IMHO the field type of your computed "Field3" should be "floating point".

2. IMHO the computaion should be:

isEmpty( ("field1") / ("field2" + 0.001),0.)

HTH Matthias

View solution in original post

4 REPLIES 4
mrump
14-Alexandrite
(To:DanR.)

Hi Daniel,

1. IMHO the field type of your computed "Field3" should be "floating point".

2. IMHO the computaion should be:

isEmpty( ("field1") / ("field2" + 0.001),0.)

HTH Matthias

DanR.
10-Marble
(To:mrump)

Is it safe to assume that I cannot mix apples and oranges. So all those fields should be floating point. Correct?

mrump
14-Alexandrite
(To:DanR.)

As far as I know, the resulting field Type is the driver.

So, as long as you are calculyting a floating point field, the calculation may still contain integer values.

At least in the field definitions of the PTC ALM Solution this is used several times.

dhegland
1-Newbie
(To:DanR.)

All correct. The only one that _has_ to be float is the final computation. Others can be or not. Where integers are divided and nested, I've also had to multiply the ratio by 1.0 to prevent the result from being rounded to integer before the next operator is applied. THAT trick is the least obvious. When in doubt, try it.

Top Tags