Strange round behavior with split payment (using 1/n)

I followed the rounding by type tutorial to round cash payment up to the nearest $0.10, ( i.e $3.95 round up to $4.00, $2.05 round up to $2.10)

Everything seems to work perfectly until I used the 1/n function to split up to total bill.

For instance, total bill is $4.99, paying the balance by cash will round up to $5.00 ( no problem here)

However when I divide the bill by 3 (click 3 then 1/n) things start to get strange.

At first it’s showing total is $1.66, and paying by cash will round it up to $1.70 (behaving as it should here)

To continue paying for the second portion of the bill, I use the button showing $1.66 adjacent to the “number pad” and below “Ticket” to change the total to $1.66. Now if I pay for this portion of the payment by cash, SambaPOS will round $1.66 to $1.74 (which should be $1.70 instead)

To continue paying for the last portion of the bill, I click “Ticket” and total is now showing $1.67, and now SambaPOS round the cash payment from $1.67 to $1.68 (again should be $1.70)

Am I doing anything wrong? I couldn’t figure out what it’s doing.

I’m using ver. 4.1.28, running Win7, SQL Server Express 2004, on stock DB that came with this version.

Any help would be much appreciated.

Thanks in advance,


Try enabling Program Settings > Payment Screen Settings > Auto Rounding feature with the rounding amount you’ve configured.

Thanks Emre, I’ve tried enable the Auto Rounding feature as suggested, and it’s still doing exactly the same thing. Any other suggestion?

After reading it once more I think you’re using payment processors for rounding.

Add Calculation Payment Processor rounds whole ticket total by adding a ticket calculation. It does not the tender amount you’ve typed. I’ve improved add calculation payment processor to fix that weird behavior but I’m not sure how exactly you expect it to work. If it rounds each payment to 1.70 we should round ticket total to 5.10. not 5.00.

Yes, I’m using payment processor for rounding as described in method 3 of the tutorial. Basically I’d like the rounding function to round any cash payment up to $0.10.

In the example given above, total bill is $4.99, and customers would like to split the bill three ways, and using the (1/n), SambaPOS calculated that the three portions are $1.66 $1.66 and $1.67 (which add up to $4.99).

I’d like SambaPOS to round each of these portions up to $1.70 (which add up to $5.10) and display each portion paid as $1.66 with $0.04 rounding and $1.67 with $0.03 rounding…etc Or just however SambaPOS treats.

Perhaps do the rounding calculation on the amount tendered each time, and add amount rounded to ticket total?

Sorry I don’t know if I’m making any sense at all, I’m fairly new to SambaPOS and still trying to understand it works.

As ticket total rounds from 4.99 to 5.00 the payment scheme will be 1.70 + 1.70 + 1.60. There is a little issue that prevents to work like that (1.74 calculation) but it will work fine on next release.

Great, thanks Emre, will look forward to the release of V5