33 public function validate( $name, $value, array $settings, array $options ) {
34 if ( is_float( $value ) ) {
36 } elseif ( is_int( $value ) ) {
38 } elseif ( $options[ self::OPT_ENFORCE_JSON_TYPES ] ??
false ) {
41 ->params( gettype( $value ) ),
42 $name, $value, $settings, $options
45 if ( !preg_match(
'/^[+-]?(?:\d*\.)?\d+(?:[eE][+-]?\d+)?$/D', $value ) ) {
47 $this->
fatal(
'badfloat', $name, $value, $settings, $options );
53 if ( !is_finite( $ret ) ) {
54 $this->
fatal(
'badfloat-notfinite', $name, $value, $settings, $options );
57 return $this->
checkRange( $ret, $name, $value, $settings, $options );
60 public function stringifyValue( $name, $value, array $settings, array $options ) {
62 $digits = PHP_FLOAT_DIG;
63 return sprintf(
"%.{$digits}g", $value );
66 public function getHelpInfo( $name, array $settings, array $options ) {
67 $info = parent::getHelpInfo( $name, $settings, $options );