Issue #24111:fix markup pricing and margins with uom conversion

yes:
```
$ cat arith.c ; ./arith
#include <stdio.h>

int main(int argc, char *argv[])
{
  printf("%f =? %f\n", 3.0 * 4.0 / 5.0 * 6.0,
                       3.0 * 4.0 / (5.0 * 6.0));
}
14.400000 =? 0.400000
```