Revision 45129

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/AutomaticDetectionOfTypes.java
35 35

  
36 36
        private int type;
37 37
        private int displaySize;
38
        private int precision;
39
        private int scale;
38
        private int integerDigits;
39
        private int decimalDigits;
40 40
        
41 41
        @Override
42 42
        public int getType() {
......
50 50

  
51 51
        @Override
52 52
        public int getPrecision() {
53
            return this.precision;
53
            return this.decimalDigits + this.integerDigits;
54 54
        }
55 55

  
56 56
        @Override
57 57
        public int getScale() {
58
            return this.scale;
58
            return this.decimalDigits;
59 59
        }
60 60
        
61 61
    }
......
137 137
                        try {
138 138
                            BigDecimal decimal = (BigDecimal) toDecimal.coerce(rawvalue, coercionContext);
139 139
                            possibleDataType.possibleDecimal = true;
140
                            if( decimal.scale() > detectedValue.scale ) {
141
                                detectedValue.scale = decimal.scale();
140
                            if( decimal.scale() > detectedValue.decimalDigits ) {
141
                                detectedValue.decimalDigits = decimal.scale();
142 142
                            }
143
                            if( decimal.precision()>detectedValue.precision ) {
144
                                detectedValue.precision = decimal.precision();
143
                            int integerDigits = decimal.precision() - decimal.scale();
144
                            if( integerDigits>detectedValue.integerDigits ) {
145
                                detectedValue.integerDigits = integerDigits;
145 146
                            }
146 147
                        } catch (Exception ex) {
147 148
                            possibleDataType.possibleDecimal = false;
......
195 196
                    }
196 197
                }
197 198
                row = rows.nextRowValues();
199
                lineno++;
198 200
            }
199 201
            int n = 0;
200 202
            for (PossibleDataType possibleDataType : possibleDataTypes) {

Also available in: Unified diff