如何使用 Twig 的 Intl 扩展提高百分比格式的小数精度?

2024-03-19

我有一个 4 位小数,小数位数为 4。(最大值为 0.9999,最小值为 0.0000)

我正在使用 Twig 及其国际扩展 https://twig-extensions.readthedocs.io/en/latest/intl.html。当我想渲染百分比数字时,小数点会四舍五入。

{% set decimal = 0.0850 %}
{{ decimal|localizednumber('decimal','double','fr-fr') }} //WILL OUTPUT "0,085"
{{ decimal|localizednumber('decimal','double','zh-cn') }} //WILL OUTPUT "0.085"
{{ decimal|localizednumber('decimal','double','ar-bh') }} //WILL OUTPUT "٠٫٠٨٥"
{{ decimal|localizednumber('percent','double','fr-fr') }} //WILL OUTPUT "8 %"
{{ decimal|localizednumber('percent','double','zh-cn') }} //WILL OUTPUT "8%"
{{ decimal|localizednumber('percent','double','ar-bh') }} //WILL OUTPUT "% ٨"

我想看看8,5 %在法语中,8.5%中文和% ٨٫٥阿拉伯语。

我尝试添加double参数,但不会改变精度。

当我使用 Symfony 时,我尝试以数字格式声明 2 位小数:

<!-- lang-yml -->
#config/twig.yaml
twig:
    #...
    number_format:
        decimals: 2

看来 Intl 扩展正在覆盖这些设置。

我知道我可以做类似的事情

{{ (decimal*100)|localizednumber('decimal','double')}}% 

But the %在某些语言中,符号可以位于结果之前,在法语中,在结果之前有一个不间断的空格% symbol.

你看到我的错误了吗?你有解决方案吗?


无法直接使用您正在使用的 Twig Intl 扩展来完成。

它没有设置精度的参数,它只是实例化NumberFormatter与您选择的格式样式,并将使用它format()你的价值。

检查代码here https://stackoverflow.com/questions/51405508/symfony-4-1-twig-extension.


还有另一个扩展,它有更多选项:https://github.com/twigphp/intl-extra https://github.com/twigphp/intl-extra

通过这个你可以指定所有支持的属性NumberFormatter, 如图所示here https://symfony.com/doc/current/templating/twig_extension.html.

你可以像这样使用它:

{% set decimal = 0.0850 %}
{{ decimal|format_number(style='percent', locale='fr', {min_fraction_digit: 1}) }}

或者,您可以通过利用来编写自己的扩展NumberFormatter.

的模式NumberFormatter::PERCENT默认使用的是#,##0 %,不包括小数精度。您可以定义自己的模式如下这些规则 https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classDecimalFormat.html#details确实如此。

或者直接致电setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, 1)指定您感兴趣的最小小数位数。

例如:

$formatter->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, 1);

最终的实现取决于您,如果您需要在 Twig 模板中使用它,您必须创建你自己的 https://stackoverflow.com/questions/51405508/symfony-4-1-twig-extension(官方交响乐团docs https://symfony.com/doc/current/templating/twig_extension.html).

查看更多示例here https://3v4l.org/UltjH.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Twig 的 Intl 扩展提高百分比格式的小数精度? 的相关文章

  • Symfony2:twig 中的 form_widget 调用抛出异常“可捕获的致命错误......必须是 Symfony\Component\Form\FormView 的实例”

    当我在控制器操作中创建一个表单时 如下所示 form this gt createFormBuilder gt add field name gt getForm return array form gt form 我尝试在树枝模板中渲染此
  • Laravel:运行队列:在 Windows Azure Web App 上连续监听

    我觉得问这个问题有点傻 但我似乎无法在互联网上找到这个问题的答案 经过几个小时的搜索后 我发现在 Linux 服务器上 您使用 Supervisor 在您的网站上连续运行 php artisanqueue listen 无论有或没有守护进程
  • 如何在Wamp服务器中启用SSL?

    我尝试在网上搜索它 但我很困惑 我没有得到任何澄清 逐步教程 http blog facilelogin com 2008 07 enabling ssl on wamp html 从链接复制 在 WAMP 上启用 SSL 本分步指南介绍了
  • PHP 中两个关联多维数组的值求和

    我正在尝试对两个关联数组的值求和 这是第一个数组 Array Jan 01 2013 gt Array COM gt 100 RES gt 200 Oct 28 2014 gt Array COM gt 300 RES gt 400 这是第
  • PDO dblib 未捕获警告

    我已经使用 realestateconz mssql bundle 和免费 TDS 成功使我的 symfony 应用程序连接到 MSSQL 数据库 我的问题是 当我尝试执行存储过程时 如果出现问题 该过程会引发异常 但 PDO 不会报告任何
  • 数组和关联数组合并

    如何实现第三个数组 合并Array1和Array2 在 PHP 中做到这一点的最佳方法是什么 非常感谢 Array2 具有类似索引 键 即 Array1 中 id 的关联值 Array1 Array 0 gt Array id gt 56
  • 使用 Jquery Easyui 将数据网格导出到 Excel

    我是 json 新手 我使用 php 从 mysql 表生成了 jason 数据 并希望将生成的 json 导出为 xls 格式 考试导出 php
  • YouTube 频道 URL 的正则表达式

    如何使用 REGEX 验证 YouTube 频道 URL 我发现了这个模式 但它不能正常工作 http https www youtube com channel user a zA Z0 9 1 谁能帮我 你的问题是之后的额外管道user
  • Facebook PHP API 登录时抛出异常

    我尝试使用 Facebook Graph API 登录并获取用户信息 我用来获取用户信息的代码以前可以工作 但今天我尝试使用 Facebook 登录 但 Facebook API 抛出此错误 未定义的偏移量 1 home vendor fa
  • Symfony:为什么 isInitialized 总是 false?

    我用教义查询了一个用户 customer this gt getDoctrine gt getRepository DemoUserBundle Customer gt find 1 但我得到了结果 顾客 1441 已初始化 错误的 ID
  • 迁移时未找到 Laravel 致命错误类

    我已经跑了artisan migrate reset 我删除了一些迁移文件 因为我不再需要这些表 I ran composer dump autoload其次是artisan dump autoload I ran artisan migr
  • 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

    我对 Laravel 还很陌生 使用的是迄今为止的最新版本 5 2 因此我遇到了以下困境 我知道 Laravel 附带了一个User开箱即用的类 但我想开发一个系统 在其中我可以有另外两种类型的用户 称为Researcher and Adm
  • 使用 PHP 和 jSON 从 MySQL 获取 UIImage

    我正在开发一个小型新闻阅读器 它通过对 URL 执行 POST 请求来从网站检索信息 响应是一个带有未读新闻的 JSON 对象 例如 应用程序上的最新新闻的时间戳为 2013 03 01 当用户刷新表时 它会发布 domain com ap
  • 重定向到另一个文件夹

    我读了这个 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htacces rewrite to redirect root url to subdir
  • 如何在刀片模板中通过引用 @include 来传递变量?

    在 Laravel 4 2 设置中 我在模板中有一个变量 我希望在多个包含之间共享该变量 主刀 This is the variable include header lt in header blade I often use tabin
  • Laravel中with()和compact()有什么区别

    功能有什么区别with and compact 在 Laravel 中这两个例子 示例1 return View make books index gt with booksList booksList 示例2 return View ma
  • Symfony StreamedResponse 服务器发送事件阻止请求

    我在 Symfony 中使用 StreamedResponse 实现了服务器发送事件 SSE 因此 当事件发生时 会话中会保存一条消息 该消息将通知给用户 问题是 当执行包含客户端代码的页面时 它会阻止对应用程序的所有 Web 请求 直到
  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat
  • 如何使用 PHP 从 iframe 获取 url

    如何从下面的链接获取 YouTube 网址 您可以使用 regex 和 preg match 函数 preg match src iframe string match url match 1 UPDATE如果您有使用 php 生成的页面或

随机推荐