sclass RatioAccumulator { double numerator, denominator; void add(double numerator, double denominator) { this.numerator += numerator; this.denominator += denominator; } // by default we return the initial state (undefined ratio) as 0 public double get() { ret doubleRatio(numerator, denominator); } bool valid() { ret denominator != 0; } // ...but you can also get it as null public Double getOrNull() { ret valid() ? get() : null; } // ...or NaN (my least preferred method) public Double getOrNaN() { ret valid() ? get() : Double.NaN; } }