Ram*_*zar 1 javascript reactjs formatjs react-intl
使用react-intl我有以下消息:
serviceFee: {
en: 'Service fee: ({fee, number, percent})',
...
},
Run Code Online (Sandbox Code Playgroud)
当我打电话
<FormatMessage id="serviceFee" values={{ fee: 0.0625 }} />
Run Code Online (Sandbox Code Playgroud)
我希望它呈现:
服务费:6.25%
但是我得到了一个四舍五入的值:
服务费:6%
如何解决这个问题?
有两种方法可以做到这一点:
您可以从消息语法中删除百分比样式:
serviceFee: 'Service fee: ({fee})'
Run Code Online (Sandbox Code Playgroud)
然后以正确的格式发送值:
<FormatMessage
id="serviceFee"
values={{ fee: intl.formatNumber(0.0625, { style: 'percent', maximumFractionDigits: 2 }) }}
/>
Run Code Online (Sandbox Code Playgroud)要么
创建一个设置必要选项的自定义格式:
const formats = {
number: {
percentWith2Decimals: { style: 'percent', maximumFractionDigits: 2 },
},
}
Run Code Online (Sandbox Code Playgroud)
添加将格式添加到您的IntlProvider:
<IntlProvider formats={formats}>...</IntlProvider>
Run Code Online (Sandbox Code Playgroud)
然后在您的消息中使用自定义格式:
serviceFee: 'Service fee: ({fee, number, percentWith2Decimals})'
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1002 次 |
| 最近记录: |