我正在尝试将 JSON 从一种模式转换为另一种模式,但在转换十进制数据类型时遇到问题。每当转换小数时,都会四舍五入到小数点后 5 位。下面提到的是输入:
{
"inputvalue": 44.84839234
}
输出如下:
{
"outputvalue": 44.84839
}
Liquid地图如下:
{
"outputvalue": {{content.inputvalue}}
}
为什么会发生这种舍入?
我正在尝试将 JSON 从一种模式转换为另一种模式,但在转换十进制数据类型时遇到问题。每当转换小数时,都会四舍五入到小数点后 5 位。下面提到的是输入:
{
"inputvalue": 44.84839234
}
输出如下:
{
"outputvalue": 44.84839
}
Liquid地图如下:
{
"outputvalue": {{content.inputvalue}}
}
为什么会发生这种舍入?
按照微软的说法,这是一个错误,很快就会修复。请参阅下面的帖子:
https://github.com/MicrosoftDocs/azure-docs/issues/50905#issuecomment-606404515
根据一些测试,这应该是设计引起的问题。在我的测试中,我使用过滤器“ round ”来保留超过五位小数。但它仍然显示为44.84839
. 所以我认为 azure 中的液体模板无法实现这个要求,我们唯一能做的解决方法是inputvalue
在生成数据源时将数字转换为字符串。
顺便说一句,如果我们使用{% assign a = content.inputvalue | Times: 1 %}
,我们可以保留更多的小数。但是数字会不准确(可能是版本的原因),你也可以试试看能不能满足你的需求。