private static boolean shouldUsePrecisionRules(RoundingRule r, Number n1, Number n2){
		return 
				r == RoundingRule.ALWAYS || 
				//or we're supposed to use precision rules for rounding except for whole numbers, and one isn't a whole number
				(r == RoundingRule.FOR_SCIENTIFIC_NOTATION_AND_DECIMALS && (!n1.isInteger() || !n2.isInteger())) ||
				//or we're supposed to use precision rules only for scientific notation, and one is in scientific notation 
				(r == RoundingRule.FOR_SCIENTIFIC_NOTATION && (n1.sciExponent != null || n2.sciExponent != null));
	}