Newtonsoft.Json.JsonValidatingReader.FloatingPointRemainder C# (CSharp) Method

FloatingPointRemainder() private static method

private static FloatingPointRemainder ( double dividend, double divisor ) : double
dividend double
divisor double
return double
        private static double FloatingPointRemainder(double dividend, double divisor)
        {
            return dividend - Math.Floor(dividend / divisor) * divisor;
        }

Usage Example

示例#1
0
        private void ValidateFloat(JsonSchemaModel schema)
        {
            if (schema == null)
            {
                return;
            }
            if (!this.TestType(schema, JsonSchemaType.Float))
            {
                return;
            }
            this.ValidateNotDisallowed(schema);
            double num = Convert.ToDouble(this._reader.Value, CultureInfo.InvariantCulture);

            if (schema.Maximum.HasValue)
            {
                double num2    = num;
                double?maximum = schema.Maximum;
                if (num2 > maximum.GetValueOrDefault() && maximum.HasValue)
                {
                    this.RaiseError("Float {0} exceeds maximum value of {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Maximum), schema);
                }
                if (schema.ExclusiveMaximum)
                {
                    double num3     = num;
                    double?maximum2 = schema.Maximum;
                    if (num3 == maximum2.GetValueOrDefault() && maximum2.HasValue)
                    {
                        this.RaiseError("Float {0} equals maximum value of {1} and exclusive maximum is true.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Maximum), schema);
                    }
                }
            }
            if (schema.Minimum.HasValue)
            {
                double num4    = num;
                double?minimum = schema.Minimum;
                if (num4 < minimum.GetValueOrDefault() && minimum.HasValue)
                {
                    this.RaiseError("Float {0} is less than minimum value of {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Minimum), schema);
                }
                if (schema.ExclusiveMinimum)
                {
                    double num5     = num;
                    double?minimum2 = schema.Minimum;
                    if (num5 == minimum2.GetValueOrDefault() && minimum2.HasValue)
                    {
                        this.RaiseError("Float {0} equals minimum value of {1} and exclusive minimum is true.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Minimum), schema);
                    }
                }
            }
            if (schema.DivisibleBy.HasValue)
            {
                double value = JsonValidatingReader.FloatingPointRemainder(num, schema.DivisibleBy.Value);
                if (!JsonValidatingReader.IsZero(value))
                {
                    this.RaiseError("Float {0} is not evenly divisible by {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.DivisibleBy), schema);
                }
            }
        }