You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS AppSync VTL浮点数被向下取整问题求解

解决AWS AppSync VTL解析器整数取整问题

不用Lambda就能解决,核心是让VTL执行浮点运算而非整数运算:

  • 问题根源:VTL中所有操作数为整数时,除法会自动执行整数除法(向下取整),导致结果丢失小数部分。
  • 解决方案:在计算时引入至少一个浮点型操作数,强制运算转为浮点模式。

修改后的VTL代码示例:

#set( $result = $ctx.source.total * 100.0 / 365000 )
$result

这里把100改为100.0,让整个运算以浮点型执行,计算5000 * 100.0 / 365000就能得到1.36986...的原始浮点结果。

如果需要保留固定小数位数(比如两位),可以结合$util.math.round()处理:

#set( $rawResult = $ctx.source.total * 100.0 / 365000 )
#set( $result = $util.math.round($rawResult * 100) / 100.0 )
$result

这样最终结果会四舍五入为1.37(可根据需求调整小数位数)。

内容的提问来源于stack exchange,提问作者leepowell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:01:11