/// <summary>
 /// Creates an instance of the <see cref="SpssNumericVariable"/> class,
 /// for use when defining a new variable.
 /// </summary>
 public SpssNumericVariable()
 {
     this.valueLabels = new SpssNumericVariableValueLabelsDictionary(this);
     this.WriteFormat = this.PrintFormat = FormatTypeCode.SPSS_FMT_F;
     this.WriteDecimal = this.PrintDecimal = DecimalPlacesDefault;
     this.WriteWidth = this.PrintWidth = ColumnWidthDefault;
     this.MissingValues = new List<double>(3);
 }
        /// <summary>
        /// Creates an instance of the <see cref="SpssNumericVariable"/> class,
        /// for use in loading variables from an existing SPSS data file.
        /// </summary>
        /// <param name="variables">The containing collection.</param>
        /// <param name="varName">The name of the variable.</param>
        /// <param name="writeFormat">The write format.  The default is <see cref="FormatTypeCode.SPSS_FMT_F"/></param>
        /// <param name="writeDecimal">The write decimal.</param>
        /// <param name="writeWidth">Width of the write.</param>
        /// <param name="printFormat">The print format.  The default is <see cref="FormatTypeCode.SPSS_FMT_F"/></param>
        /// <param name="printDecimal">The print decimal.</param>
        /// <param name="printWidth">Width of the print.</param>
        protected internal SpssNumericVariable(SpssVariablesCollection variables, string varName, FormatTypeCode writeFormat, int writeDecimal, int writeWidth, FormatTypeCode printFormat, int printDecimal, int printWidth)
            : base(variables, varName)
        {
            this.valueLabels = new SpssNumericVariableValueLabelsDictionary(this);

            MissingValueFormatCode formatCode;
            double[] missingValues = new double[3];
            ReturnCode result = SpssException.ThrowOnFailure(SpssSafeWrapper.spssGetVarNMissingValues(this.FileHandle, this.Name, out formatCode, out missingValues[0], out missingValues[1], out missingValues[2]), "spssGetVarNMissingValues");
            this.MissingValueFormat = formatCode;
            this.MissingValues = new List<double>(missingValues.Take(Math.Abs((int)formatCode)));
            this.writeDecimal = writeDecimal;
            this.writeWidth = writeWidth;
            this.writeFormat = writeFormat;
            this.printDecimal = printDecimal;
            this.printWidth = printWidth;
            this.printFormat = printFormat;
        }