Spring 表达式 (SpEL) - 舍入

2024-01-14

使用 SpEL 评估数学运算时是否有办法指定舍入精度? 例如

ExpressionParser parser  = new SpelExpressionParser();
Expression exp = parser.parseExpression("2/3");
exp.getValue(Double.class); //returns 0.0 instead of 0.666666667

或者这是 SpEL 的限制?

Thanks


这对我有用:

"2.0/3"

结果是0.6666666666666666.

是否有意义?

要点是getValue(Double.class)在这里被消除,因为你的2/3只是两个整数之间的运算,结果也是一个整数 -0。 并且只有在此之后,该结果才会转换为预期的双精度值0.0.

您需要在表达式中明确表示您将处理双打。

您可能会认为这是一个限制,但是getValue(Double.class)不是一个casting像Java中一样操作。这是一个转换后的过程。因此,精度会丢失,因为您的表达式无论如何都会计算为整数。

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

Spring 表达式 (SpEL) - 舍入 的相关文章

随机推荐

  • Java:返回 java.util.Date 格式的字符串[重复]

    这个问题在这里已经有答案了 我将以 201201 格式接收输入 即 YYYYMM 格式 现在我想按原样返回值 201201 但它应该采用 java util Date 格式 我很困惑 String strDate 201201 Simple
  • Hadoop 溢出故障

    我目前正在开发一个使用 Hadoop 0 21 0 985326 以及一个由 6 个工作节点和一个头节点组成的集群的项目 提交常规 MapReduce 作业失败 但我不知道为什么 以前有人见过这个异常吗 org apache hadoop
  • MS-SQL 查询 - 更新通过存储过程检索的记录

    UPDATE 现在范围已经稍微扩大了 我现在需要检索字段 Id uri linkTo 这如何改变事情 我正在使用 MS SQL 2005 数据库并具有以下存储过程 CREATE PROCEDURE dbo getNewAds region
  • 将数据发送到单独的窗口 javascript

    我使用以下命令从现有页面创建了一个新的弹出窗口 window open myUrl myName width 200 height 200 现在 在该弹出窗口上 我有一个文本输入和一个按钮 我想为按钮创建一个 onclick 方法 将文本输
  • 三星 G5 setvisibility 出现空指针异常

    Android 应用代码可在各种设备上成功运行 包括早至 API 14 至 API 19 目标 但是 Samsung G5 v4 4 4 在尝试为活动设置 Visibilty true 时会抛出 NPE 此错误可能仅在最近通过 Sprint
  • 编组通知包

    我正在尝试将通知对象写入文件 我能找到的最好方法是将对象写入包 编组该包以获取字节 然后将其写入文件 Parcel notif Parcel obtain notification writeToParcel notif 0 byte no
  • 当 Go 返回多个值时到底发生了什么

    Go 函数和方法可以返回多个值 func learnMultiple x y int sum prod int return x y x y return two values 总和 产品 learnMultiple 10 50 是不是和返
  • 是否可以更改 Java ME 中的垃圾收集行为?

    我想知道是否可以调整垃圾收集器在 JavaMe 上的工作方式 以某种方式提高性能 可能会减少段落数量 我看过一些关于它的文章 但大多是针对 Java SE 的 其中大多数都说 GC 高度依赖于制造商 那会是多少呢 垃圾收集器何时被触发在很大
  • 如何在Featuretools中实现加权和变换基元?

    我试图弄清楚如何为Featuretools 实现加权总和原语 权重应取决于 time since last 就像 cum sum 金额 sum i exp a i amount i where i正在滚动 6 个月期 在上面你可以找到原来的
  • 当弹出窗口处于活动状态时,如何与 ionic 中的后台项目进行交互?

    离子版本 1 x 平台 全部 我有一个使用离子弹出框的离子应用程序 但是 当弹出窗口处于活动状态 打开 时 我无法再与后台中的事物交互 例如向下滚动我的项目列表 我曾尝试寻找此问题的现有答案 但没有看到提出的问题 弹出窗口本身不必绑定到页面
  • AngularJs 如何从轮询服务获取数据到控制器

    我有这个service它检查后端是否有新数据 它工作正常 但问题是我无法使用从服务到控制器的数据 watch也不使用promise SERVICE service notificationPollService function q htt
  • Create-react-app 控制台显示块文件

    I would like to debug some errors happening during my React development As you can see I can t see the source files I am
  • Exoplayer 从字节数组播放音频 - ByteArrayDataSource

    使用 Exoplayer 我尝试播放字节数组中的音频文件 我正在尝试使用 ByteArrayDataSource 但在调用构造函数时出现错误 new ByteArrayDataSource data 这是我想出的代码 private voi
  • 角度表达式在 Chrome 扩展中计算,但在 Edge 扩展中不计算

    我有一个简单的浏览器扩展 使用 Angular v1 6 3 但是浏览器扩展的弹出窗口中的 Angular 表达式无法在 Edge 中计算 但在 Chrome 中却可以 Angular 的表达式很简单 div 2 2 div 当我浏览到相关
  • 排序在 jQuery 数据表中不起作用

    我在一页中有两个内联表 排序适用于一个数据表 但不适用于其他数据表 一次调用两个 div 但排序仅适用于一个数据表 div1 DataTable processing true destroy true paginate true leng
  • 使用 jQuery 和 asp.net 转发器自动完成填充 ID

    我有一个带有自动完成功能的 asp Textbox 数据来自网络服务并返回 Json 数据 当选择一个项目时 它会将一个值 id 放入 隐藏 字段中 并将价格放入另一个文本框中 这一切都很好 但是当我将或多或少相同的代码放入 asp rep
  • 需要在 Python Pandas 中过滤几列并更改其中一列的值

    我有一个包含 150 000 行和 15 列的表 此示例的重要列是 COUNTRY COSTCENTER 和 EXTENSION 我正在将 CSV 读入 Pandas Dataframe 所有列都是对象类型 我想做的是 搜索某个国家 地区
  • Maven 的综合站点/部署目标

    在 CI 服务器上运行 Maven 构建时 我生成站点来发布文档和报告 并将工件部署到快照存储库以供其他项目使用 为此 我设定了以下目标 mvn clean site deploy 这意味着单元测试已运行twice 一次用于站点生命周期 一
  • 将 JsonSerializerSettings 从 JsonSerializer 复制到新的 JsonSerializer

    有什么办法可以去掉设置JsonSerializer类并在新的中重新实现它们JsonSerializer 似乎没有任何方法可以做类似的事情 我发现最好的是通过反射调用的私有方法 ApplySerializerSettings 我正在尝试从Wr
  • Spring 表达式 (SpEL) - 舍入

    使用 SpEL 评估数学运算时是否有办法指定舍入精度 例如 ExpressionParser parser new SpelExpressionParser Expression exp parser parseExpression 2 3