Renat Valiullin created ARROW-16223:
---------------------------------------

             Summary: BasicDecimal128::ReduceScaleBy with rounding works 
incorrectly
                 Key: ARROW-16223
                 URL: https://issues.apache.org/jira/browse/ARROW-16223
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Renat Valiullin


BasicDecimal128 one(5); // 0.5
one.ReduceScaleBy(1, true); // expected 1, but result is -1

BasicDecimal128 BasicDecimal128::ReduceScaleBy(int32_t reduce_by, bool round) 
const {

...

      if (result > 0) { // <<< should be >=
        result += 1;
      } else {
        result -= 1;
      }



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to