2010-08-20 2 views
0

Вопрос с использованием Grails 1.3.4 - ограничение' scale ', похоже, не сохраняет десятичные числа. У меня есть поле, определяемое как: Float latitude У меня есть ограничение: широта (пробел: ложь, диапазон: -360.0f..360.0f, масштаб: 6) Поле Oracle 10g определено как: NUMBER (10,6)Градиент Grails ', делящий десятичные цифры

Когда я ввожу значение в Create или Edit, правильное значение попадает в базу данных. Тем не менее, он никогда не отображается правильно в Show. Если я вхожу 10.1234567 и обновляюсь, 10.123457 находится в базе данных, но 10.123 отображается в Show.

Если I Edit, значение отображается как 10.123, и если я обновляю его без изменения, 10.123 будет сохранен в базе данных, заменив 10.123457, хотя я никогда не касался этого поля.

Если я изменяю значение до 10.456789, но оставляю другое обязательное поле пустым, то в результате экрана редактирования с сообщением об ошибке отображается значение 10.457.

Почему Grails постоянно округляет значение до 3 цифр? Я пробовал поле как Двойной, но те же результаты. Я подумал, что это был Oracle, но я попробовал его с базой данных по умолчанию и тем же результатом. Я подумал, что это был «диапазон», но я принял это с тем же результатом.

+0

Звучит как ошибка, я бы подать билет. –

ответ

0

Хм - Вы уверены, что это правильно отображается в вашей базе данных? Также - проверьте использование тегов: См. http://www.pubbs.net/200908/grails/38057-grails-user-how-does-rounding-of-decimals-work-in-gsp.html

+1

Спасибо за ссылку. По совету этого пользователя работала. Я удалил тег fieldValue и просто отобразил значение прямо из $ {bean.field} и получил все 6 десятичных знаков – snowmanjack

0

Потерянное слишком много времени, пытаясь понять это, в конечном итоге использовало решение, предложенное snowmanjack.

Обязательная привязка по умолчанию, возникающая при вызове fieldValue, обрезает ее. Вы можете написать новое связующее данные, которое обрабатывает преобразование так, как вам нужно, как описано здесь. http://grails.org/doc/latest/guide/single.html#dataBinding

Или вы можете сделать ленивый, возможно, менее безопасный метод, который я использовал и получил доступ к собственности напрямую.

Я заменил.

${fieldValue(bean: countryInstance, field: "latitude")} 

с

${contryInstance.latitude} 
Смежные вопросы