Ok, so the first thing to understand is how the prices show up in zen cart.
They are displayed by a function called "zen_get_products_display_price".
This function is located in the following file -> includes/functions/functions_prices.php around line 149.
One solution would be to change the following around line 286 from this:
return $final_display_price . $free_tag . $call_tag;
to this:
return str_replace('.00','',$final_display_price) . $free_tag . $call_tag;
This will get rid of the .00 but leave the .15 in the sale price.
That being said, it is never the best idea to modify core functions.
The function may be used somewhere else in the script that might affect something untested.
The better solution would be NOT to modify the function and use this from above.
admin panel/ localization / currencies
Select your currency then click Edit. In Decimal Places field change 2 to 0.
But instead of using percentages to discount your items, adjust the sale values to .00
In your example 33.15, would become 33.00, the percentage off should still remain 15%