Skip to content

Commit e8b9e00

Browse files
joeke80215bmoffatt
authored andcommitted
fixed loses precision for large values (#227)
* fixed loses precision for large values #186 * update
1 parent 62a881e commit e8b9e00

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

events/attributevalue.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,12 @@ func (av DynamoDBAttributeValue) Number() string {
7575
// of an int64 of the appropriate sign.
7676
// Method panics if the attribute is not of type Number.
7777
func (av DynamoDBAttributeValue) Integer() (int64, error) {
78-
s, err := strconv.ParseFloat(av.Number(), 64)
78+
number := av.Number()
79+
value, err := strconv.ParseInt(number, 10, 64)
80+
if err == nil {
81+
return value, nil
82+
}
83+
s, err := strconv.ParseFloat(number, 64)
7984
return int64(s), err
8085
}
8186

0 commit comments

Comments
 (0)