28#ifndef DOUBLE_CONVERSION_DOUBLE_TO_STRING_H_
29#define DOUBLE_CONVERSION_DOUBLE_TO_STRING_H_
166 const char* infinity_symbol,
167 const char* nan_symbol,
168 char exponent_character,
169 int decimal_in_shortest_low,
170 int decimal_in_shortest_high,
171 int max_leading_padding_zeroes_in_precision_mode,
172 int max_trailing_padding_zeroes_in_precision_mode,
173 int min_exponent_width = 0)
175 infinity_symbol_(infinity_symbol),
176 nan_symbol_(nan_symbol),
177 exponent_character_(exponent_character),
178 decimal_in_shortest_low_(decimal_in_shortest_low),
179 decimal_in_shortest_high_(decimal_in_shortest_high),
180 max_leading_padding_zeroes_in_precision_mode_(
181 max_leading_padding_zeroes_in_precision_mode),
182 max_trailing_padding_zeroes_in_precision_mode_(
183 max_trailing_padding_zeroes_in_precision_mode),
184 min_exponent_width_(min_exponent_width) {
241 return ToShortestIeeeNumber(
value, result_builder,
SHORTEST);
286 int requested_digits,
320 int requested_digits,
424 int requested_digits,
433 bool ToShortestIeeeNumber(
double value,
441 bool HandleSpecialValues(
double value,
StringBuilder* result_builder)
const;
444 void CreateExponentialRepresentation(
const char* decimal_digits,
449 void CreateDecimalRepresentation(
const char* decimal_digits,
452 int digits_after_point,
456 const char*
const infinity_symbol_;
457 const char*
const nan_symbol_;
458 const char exponent_character_;
459 const int decimal_in_shortest_low_;
460 const int decimal_in_shortest_high_;
461 const int max_leading_padding_zeroes_in_precision_mode_;
462 const int max_trailing_padding_zeroes_in_precision_mode_;
463 const int min_exponent_width_;
static int sign(SkScalar x)
bool ToShortestSingle(float value, StringBuilder *result_builder) const
static const int kBase10MaximalLengthSingle
static const int kMaxFixedDigitsAfterPoint
static const int kMaxCharsEcmaScriptShortest
bool ToFixed(double value, int requested_digits, StringBuilder *result_builder) const
static const DoubleToStringConverter & EcmaScriptConverter()
bool ToExponential(double value, int requested_digits, StringBuilder *result_builder) const
DoubleToStringConverter(int flags, const char *infinity_symbol, const char *nan_symbol, char exponent_character, int decimal_in_shortest_low, int decimal_in_shortest_high, int max_leading_padding_zeroes_in_precision_mode, int max_trailing_padding_zeroes_in_precision_mode, int min_exponent_width=0)
static const int kMaxFixedDigitsBeforePoint
static const int kMinPrecisionDigits
static void DoubleToAscii(double v, DtoaMode mode, int requested_digits, char *buffer, int buffer_length, bool *sign, int *length, int *point)
static const int kMaxPrecisionDigits
@ EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL
@ EMIT_POSITIVE_EXPONENT_SIGN
@ EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL
@ EMIT_TRAILING_ZERO_AFTER_POINT
@ EMIT_TRAILING_DECIMAL_POINT
static const int kBase10MaximalLength
bool ToShortest(double value, StringBuilder *result_builder) const
static const int kMaxExponentialDigits
bool ToPrecision(double value, int precision, StringBuilder *result_builder) const
FlutterSemanticsFlag flags
static const uint8_t buffer[]
#define DOUBLE_CONVERSION_ASSERT(condition)
#define DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName)