5
Tôi đang cố gắng duy trì một BigDecimal trong một ứng dụng Grails 2.0 mới, và nó không hoạt động ở mức độ nào tôi mong đợi.Grails 2.0 rắc rối với sự tồn tại của BigDecimal
tôi thực hiện một ứng dụng mới có tên gọi l2bigdec
và thêm lớp miền:
package l2bigdec
class PlayMe {
BigDecimal imStupidOrSomething
static constraints = {
}
}
Sau đó, tôi đặt mã này trong bootstrap:
import l2bigdec.*
class BootStrap {
def init = { servletContext ->
def thisThingIHate = new PlayMe(imStupidOrSomething:0.912345).save(failOnError:true)
println thisThingIHate.imStupidOrSomething
PlayMe.withSession{it.clear()}
def getItBack = PlayMe.find{it}
println getItBack.imStupidOrSomething
}
def destroy = {
}
}
nào in:
0.912345
0.91
Tại sao nó không in 0.912345 cả hai lần? Tôi không hiểu BigDecimal?
gì nếu tôi thực sự muốn có một BigDecimal và không phải là một phao tròn và nó cần phải giữ gìn mỗi chữ số tôi cho nó? Điều này không còn khả thi trong phiên bản 2.0? – Mikey
Tôi có thể đặt tỷ lệ mặc định lớn hơn để không phải truy cập dự án của mình khi cập nhật mọi BigDecimal không? – Mikey
Nếu bạn đang nhắm mục tiêu một RDBMS cụ thể, một số có các loại chính xác tùy ý bạn có thể sử dụng (ví dụ 'NUMERIC' trong PostgreSQL). Nếu không, không có cách nào dễ dàng để tôi lưu giữ các chữ số tùy ý. Tôi cũng không biết về một điểm duy nhất để đặt tỷ lệ mặc định. Nếu tên thuộc tính BigDecimal của bạn tương tự nhau giữa các lớp, bạn có thể sử dụng 'grails.gorm.default.constraints', được mô tả tại đây: http://grails.org/doc/latest/ref/Constraints/Usage.html –