Skip to content

[MON-1122] Revert variable rounding logic to not round up#2857

Merged
polpielladev merged 13 commits into
mainfrom
mon-1122-revert-variable-rounding-logic-to-not-round-up
Nov 21, 2025
Merged

[MON-1122] Revert variable rounding logic to not round up#2857
polpielladev merged 13 commits into
mainfrom
mon-1122-revert-variable-rounding-logic-to-not-round-up

Conversation

@polpielladev

Copy link
Copy Markdown
Collaborator

When shipping Paywalls v2, there was a regression with the way that we show prices. We changed from not rounding or rounding down to actually rounding up.

Where this is specially important is when a dev picks a price that is explicitly designed to get just under a dollar threshold, like $83.99, which is either 6.99 or 7.00 — and 6.99 is the actual price they're aiming to put in front of customers.

Checklist

  • If applicable, unit tests
  • If applicable, create follow-up issues for purchases-ios and hybrids

@polpielladev polpielladev requested a review from a team as a code owner November 19, 2025 08:42
Updated the PriceFactory to ensure that the formatted price reflects the correct number of decimal places by truncating the value before formatting. This change improves the accuracy of currency representation in the application.
@polpielladev polpielladev force-pushed the mon-1122-revert-variable-rounding-logic-to-not-round-up branch from ece0b4b to 6fc45c3 Compare November 19, 2025 08:42
@emerge-tools

emerge-tools Bot commented Nov 19, 2025

Copy link
Copy Markdown

📸 Snapshot Test

119 modified, 451 unchanged

Name Added Removed Modified Renamed Unchanged Errored Approval
TestPurchasesUIAndroidCompatibility Paparazzi
com.revenuecat.testpurchasesuiandroidcompatibility.paparazzi
0 0 94 0 164 0 ✅ Approved
TestPurchasesUIAndroidCompatibility
com.revenuecat.testpurchasesuiandroidcompatibility
0 0 25 0 287 0 ✅ Approved

🛸 Powered by Emerge Tools

@polpielladev polpielladev added the pr:fix A bug fix label Nov 19, 2025
@polpielladev polpielladev changed the title Mon 1122 revert variable rounding logic to not round up [MON-1122] Revert variable rounding logic to not round up Nov 19, 2025
@codecov

codecov Bot commented Nov 19, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.24%. Comparing base (af896fe) to head (13491e7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2857   +/-   ##
=======================================
  Coverage   78.23%   78.24%           
=======================================
  Files         323      324    +1     
  Lines       12711    12715    +4     
  Branches     1736     1736           
=======================================
+ Hits         9945     9949    +4     
  Misses       2036     2036           
  Partials      730      730           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might just want to use round instead of floor to account for possible floating point errors. Other than that, it looks great!

Comment thread purchases/src/main/kotlin/com/revenuecat/purchases/utils/PriceFactory.kt Outdated

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Thanks for doing this 🙌

@polpielladev polpielladev added this pull request to the merge queue Nov 21, 2025
Merged via the queue into main with commit deb5ae8 Nov 21, 2025
23 checks passed
@polpielladev polpielladev deleted the mon-1122-revert-variable-rounding-logic-to-not-round-up branch November 21, 2025 09:37
github-merge-queue Bot pushed a commit that referenced this pull request Nov 25, 2025
**This is an automatic release.**

> [!WARNING]  
> If you don't have any login system in your app, please make sure your
one-time purchase products have been correctly configured in the
RevenueCat dashboard as either consumable or non-consumable. If they're
incorrectly configured as consumables, RevenueCat will consume these
purchases. This means that users won't be able to restore them from
version 9.0.0 onward.
> Non-consumables are products that are meant to be bought only once,
for example, lifetime subscriptions.


## RevenueCat SDK
### 🐞 Bugfixes
* Restore Purchases config automatically in CustomerCenter (#2867) via
Facundo Menzella (@facumenzella)
* Handle error reading `errorStream` in some devices (#2865) via Toni
Rico (@tonidero)
* [MON-1122] Revert variable rounding logic to not round up (#2857) via
Pol Piella Abadia (@polpielladev)

## RevenueCatUI SDK
### Paywallv2
#### 🐞 Bugfixes
* Select default package on Sheet dismissal (#2861) via Cesar de la Vega
(@vegaro)
### Customer Center
#### ✨ New Features
* CC-581 | Allow for support ticket creation (#2810) via Rosie Watson
(@RosieWatson)

### 🔄 Other Changes
* Bump fastlane-plugin-revenuecat_internal from `7328ea7` to `efca663`
(#2864) via dependabot[bot] (@dependabot[bot])
* Bump fastlane from 2.228.0 to 2.229.0 (#2863) via dependabot[bot]
(@dependabot[bot])
* Bump fastlane-plugin-revenuecat_internal from `083ced9` to `7328ea7`
(#2862) via dependabot[bot] (@dependabot[bot])
* Runs plugin actions from correct directory (#2858) via JayShortway
(@JayShortway)
* Flush multiple event batches (#2842) via Toni Rico (@tonidero)
* Add file size limit to events tracking files (#2841) via Toni Rico
(@tonidero)
* Make events manager be supported in Android < 24 (#2854) via Toni Rico
(@tonidero)
* Add non paid revenue reporting infra (#2728) via Toni Rico (@tonidero)
* Fix backend integration tests (#2860) via Toni Rico (@tonidero)
* Track `connection_error_reason` property in diagnostics (#2855) via
Toni Rico (@tonidero)
* Uses some git+GitHub lanes from Fastlane plugin (#2856) via
JayShortway (@JayShortway)
* Add client side timeout logic for endpoints that support fallback URLs
(#2807) via Toni Rico (@tonidero)
* [EXTERNAL] Fix deprecation warnings in examples module (#2852)
contributed by @gojoel (#2853) via Toni Rico (@tonidero)
* Bump fastlane-plugin-revenuecat_internal from `9f78bb9` to `083ced9`
(#2848) via dependabot[bot] (@dependabot[bot])

Co-authored-by: revenuecat-ops <ops@revenuecat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants