2

一切都在标题中说。我想用 2 位小数在 String 中转换 double 。

我尝试了 quarkus 的示例:

@TemplateExtension(namespace = "str")
class StringExtensions {

   static String format(String fmt, Object... args) {
      return String.format(fmt, args);
   }

   static String reverse(String val) {
      return new StringBuilder(val).reverse().toString();
   }
}

并且是我的模板

{str:format('%.2f', total)}

但它总是导致 NOT_FOUND。

唯一的方法是把:

    static String formatNumber(Double num) {
        return String.format("%.2f", num);
    }

并更改我的模板:

{total.formatNumber}

有没有更好的办法 ?我使用了 quarkus-rest-easy-qute 和 quarkus-qute 扩展,两者都是一样的。

4

1 回答 1

1

对于具有命名空间的扩展方法,如何处理可变参数存在错误。我刚刚创建了一个带有修复程序的 PR:https ://github.com/quarkusio/quarkus/pull/14226 。

一个丑陋的解决方法是在模板中使用一个额外的“虚拟”参数,例如{str:format('%.2f', total, 1)},并忽略指定格式的这个参数。

于 2021-01-11T13:57:42.800 回答