35 public function validate( $name, $value, array $settings, array $options ) {
36 if ( is_float( $value ) ) {
38 } elseif ( is_int( $value ) ) {
40 } elseif ( $options[ self::OPT_ENFORCE_JSON_TYPES ] ??
false ) {
43 ->params( gettype( $value ) ),
44 $name, $value, $settings, $options
47 if ( !preg_match(
'/^[+-]?(?:\d*\.)?\d+(?:[eE][+-]?\d+)?$/D', $value ) ) {
49 $this->
fatal(
'badfloat', $name, $value, $settings, $options );
55 if ( !is_finite( $ret ) ) {
56 $this->
fatal(
'badfloat-notfinite', $name, $value, $settings, $options );
59 return $this->
checkRange( $ret, $name, $value, $settings, $options );
63 public function stringifyValue( $name, $value, array $settings, array $options ) {
65 $digits = PHP_FLOAT_DIG;
66 return sprintf(
"%.{$digits}g", $value );
70 public function getHelpInfo( $name, array $settings, array $options ) {
71 $info = parent::getHelpInfo( $name, $settings, $options );