Отображение числовых значений с 9 десятичными точками в жидких шаблонах с использованием DotLiquid - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь отобразить числовое значение 0,733675715, используя жидкие шаблоны.

Следующий код

{%- assign rate = 0.733675715 -%}
{{ rate }}

Результаты: 0.7336757

Я не смогнайти способ:

  1. преобразовать числовое значение в строку
  2. заставить жидкость отображать все десятичные знаки

- редактировать

Примечание : DotLiquid используется учетными записями интеграции логических приложений Azure для преобразования JSON / XML / Text

1 Ответ

0 голосов
/ 30 октября 2019

Я нашел проблему в библиотеке dotLiquid . Исправление можно найти в этом PR: https://github.com/dotliquid/dotliquid/pull/353.

По сути, в операторе присвоения 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);
}
  1. https://github.com/dotliquid/dotliquid/blob/b415f6aaa5b66fdbfa9c5d676427c7663c1e98e3/src/DotLiquid/Context.cs#L347
...