def scientific_notation_elements(self, value, locale):
<EOL>exp = value.adjusted()<EOL>value = value * get_decimal_quantum(exp)<EOL>assert value.adjusted() == <NUM_LIT:0><EOL>lead_shift = max([<NUM_LIT:1>, min(self.int_prec)]) - <NUM_LIT:1><EOL>exp = exp - lead_shift<EOL>value = value * get_decimal_quantum(-lead_shift)<EOL>exp_sign = '<STR_LIT>'<EOL>if exp < <NUM_LIT:0>:<EOL><INDENT>exp_sign = babel.numbers.get_minus_sign_symbol(locale)<EOL><DEDENT>elif self.exp_plus:<EOL><INDENT>exp_sign = babel.numbers.get_plus_sign_symbol(locale)<EOL><DEDENT>exp = abs(exp)<EOL>return value, exp, exp_sign<EOL>
Returns normalized scientific notation components of a value.