facebook / facebook/hermes

Intl.NumberFormat signDisplay option displays odd behaviour

Open
#1,466 1 comment 0 reactions 0 assignees View on GitHub
Needs: Triage :mag:
Dominant language
JavaScript
Stars
11.3k
Forks
859
Avg merge
1h 30m
Merged PRs (30d)
3

Description

### Description

The `signDisplay` option for `Intl.NumberFormat` is bugged and has an odd behaviour. E.g. the option `exceptZero` outputs "`+8,537,71+`" but it should output `+8.537,71 €`. Don't know if this only affects Android.

### Steps to reproduce

1. Create a new React Native application
2. Insert this code somewhere:

```js
{
new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR',
maximumFractionDigits: 2,
minimumFractionDigits: 2,
roundingMode: 'floor',
signDisplay: 'exceptZero',
}).format(8537.71)
}
```

3. Start the app on Android

### React Native Version

0.74.4

### Affected Platforms

Runtime - Android

### Output of `npx react-native info`

```text
System:
OS: macOS 14.5
CPU: (10) arm64 Apple M1 Max
Memory: 307.52 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.14.0
path: /etc/profiles/per-user/user/bin/node
Yarn:
version: 3.6.4
path: /etc/profiles/per-user/user/bin/yarn
npm:
version: 10.7.0
path: /etc/profiles/per-user/user/bin/npm
Watchman:
version: 2024.03.11.00
path: /etc/profiles/per-user/user/bin/watchman
Managers:
CocoaPods: Not Found
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.5
- iOS 17.5
- macOS 14.5
- tvOS 17.5
- visionOS 1.2
- watchOS 10.5
Android SDK:
API Levels:
- "30"
- "31"
- "32"
- "33"
- "33"
- "34"
Build Tools:
- 30.0.1
- 30.0.3
- 31.0.0
- 33.0.1
- 34.0.0
System Images:
- android-22 | Google APIs ARM 64 v8a
- android-31 | Google APIs ARM 64 v8a
- android-33 | Wear OS 4 ARM 64 v8a
- android-33 | Google APIs ARM 64 v8a
- android-33 | Google Play ARM 64 v8a
- android-34 | Google Play ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2024.1 AI-241.18034.62.2411.12071903
Xcode:
version: 15.4/15F31d
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.12
path: /usr/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.74.4
wanted: 0.74.4
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: Not found
newArchEnabled: false
```

### Stacktrace or Logs

```text
n/a
```

### Reproducer

https://github.com/Brawl345/rn-signDisplay-bug-reproducer

### Screenshots and Videos

![Screenshot_1722504869](https://github.com/user-attachments/assets/cd3b9abf-19bd-42c5-8418-f169dc343b98)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.