SciPy

numpy.format_float_scientific

numpy.format_float_scientific(x, precision=None, unique=True, trim='k', sign=False, pad_left=None, exp_digits=None)[source]

Format a floating-point scalar as a decimal string in scientific notation.

Provides control over rounding, trimming and padding. Uses and assumes IEEE unbiased rounding. Uses the “Dragon4” algorithm.

Parameters:

x : python float or numpy floating scalar

Value to format.

precision : non-negative integer, optional

Maximum number of fractional digits to print. May be omitted if unique is True, but is required if unique is False.

unique : boolean, optional

If True, use a digit-generation strategy which gives the shortest representation which uniquely identifies the floating-point number from other values of the same type, by judicious rounding. If precision was omitted, print all necessary digits, otherwise digit generation is cut off after precision digits and the remaining value is rounded. If False, digits are generated as if printing an infinite-precision value and stopping after precision digits, rounding the remaining value.

trim : one of ‘k’, ‘.’, ‘0’, ‘-‘, optional

Controls post-processing trimming of trailing digits, as follows:

k : keep trailing zeros, keep decimal point (no trimming) . : trim all trailing zeros, leave decimal point 0 : trim all but the zero before the decimal point. Insert the

zero if it is missing.

  • : trim trailing zeros and any trailing decimal point

sign : boolean, optional

Whether to show the sign for positive values.

pad_left : non-negative integer, optional

Pad the left side of the string with whitespace until at least that many characters are to the left of the decimal point.

exp_digits : non-negative integer, optional

Pad the exponent with zeros until it contains at least this many digits. If omitted, the exponent will be at least 2 digits.

Returns:

rep : string

The string representation of the floating point value

Examples

>>> np.format_float_scientific(np.float32(np.pi))
'3.1415927e+00'
>>> s = np.float32(1.23e24)
>>> np.format_float_scientific(s, unique=False, precision=15)
'1.230000071797338e+24'
>>> np.format_float_scientific(s, exp_digits=4)
'1.23e+0024'