我正在尝试使用液体模板显示 0.733675715 的数值。
以下代码
{%- assign rate = 0.733675715 -%}
{{ rate }}
结果是:0.7336757
我找不到办法:
- 将数值转换为字符串
- 强制液体显示所有小数位
- 编辑
注意:Azure 逻辑应用集成帐户使用 DotLiquid 在 JSON/XML/Text 之间进行转换
我正在尝试使用液体模板显示 0.733675715 的数值。
以下代码
{%- assign rate = 0.733675715 -%}
{{ rate }}
结果是:0.7336757
我找不到办法:
- 编辑
注意:Azure 逻辑应用集成帐户使用 DotLiquid 在 JSON/XML/Text 之间进行转换
我在dotLiquid库中发现了这个问题。可以在此 PR 中找到修复程序:https ://github.com/dotliquid/dotliquid/pull/353 。
基本上,在 assign 语句中,dotliquid 将值解析为float [1],因此会丢失精度。
// Floats.
match = FloatRegex.Match(key);
if (match.Success)
{
// For cultures with "," as the decimal separator, allow
// both "," and "." to be used as the separator.
// First try to parse using current culture.
if (float.TryParse(match.Groups[1].Value, NumberStyles.Number, FormatProvider, out float result))
return result;
// If that fails, try to parse using invariant culture.
return float.Parse(match.Groups[1].Value, CultureInfo.InvariantCulture);
}