Sitecore Profile.Score(строка, число с плавающей запятой), имеющее проблемы с десятичными значениями
Я работаю на sitecore site rev 120706 DMS и основной.
Мы добавляем персонажи на некоторые страницы и получаем необычные результаты с дробными значениями, когда пытаемся добавить их с помощью метода Score (string, float). у нас есть опережающее значение 0,5 из-за того, что на предыдущую страницу добавлены два профиля, один со значением 1, а другой со значением 0. При отправке формы мы хотим добавить один к значению и использовать Profile.Score("привести", 1) который заменяет.5 на 1 вместо 1, чтобы получить 1,5 . Когда значение равно 1, мы успешно получаем 2.
Как мы можем заставить метод Score реагировать согласованно?
1 ответ
Sitecore, очевидно, имеет проблему в своем коде с использованием int.Parse вместо float.Parse
Я нашел место в коде, где появляется ошибка. Это в методе Sitecore.Analytics.Data.VisitProfile.Parse(). Он использует int.Parse вместо float.Parse при чтении значений профиля из базы данных. Эта проблема была исправлена в Sitecore 6.6.0 Update-4. Пожалуйста, смотрите ссылочный номер 376088 в примечаниях к выпуску. К сожалению, нет простого способа исправить код. Пожалуйста, рассмотрите возможность обновления вашего решения до 6.6.0 Update-4. Тем временем я бы предложил использовать более высокие значения баллов в ваших профилях, чтобы итоговое значение всегда было больше 1. Этот подход работает на моей стороне. Пожалуйста, дайте нам знать, если у вас возникли проблемы с этим.
Чтобы решить эту проблему, нужно просто умножить значения, которые мы использовали, на 10, чтобы избежать int с sitecore, а не с плавающей запятой.