2013-08-20 2 views
1

Я работаю над сайтом sitoreore rev 120706 DMS и main.Sitecore Profile.Score (строка, float), имеющий проблемы с десятичными значениями

Мы добавляем персонажи на некоторые страницы и получаем необычные результаты с дробными значениями, когда мы пытаемся добавить их с помощью метода Score (string, float). у нас есть значение, которое составляет 0,5 из-за того, что два профиля добавляются на более раннюю страницу со значением 1, а другое со значением 0. При отправке формы мы хотим добавить ее к значению и использовать Profile.Score («lead», 1), который заменяет .5 на 1 вместо добавления 1, чтобы получить 1.5. Когда значение равно 1, мы успешно получаем 2.

Как мы можем заставить метод оценки реагировать в согласованном вопросе?

+0

Вы пробовали экспликацию, определяющую 1 как поплавок: Profile.Score («lead», 1f); Просто хватаясь за соломинку, так как когда я декомпилировал код для этого метода, он имеет дело только с поплавками. –

ответ

0

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, а не поплавка.

Смежные вопросы