1: <?php declare(strict_types = 1);
2:
3: namespace ApiGen\Info\Expr;
4:
5: use ApiGen\Info\ExprInfo;
6:
7: use function is_finite;
8: use function json_encode;
9: use function str_contains;
10:
11: use const JSON_THROW_ON_ERROR;
12:
13:
14: class FloatExprInfo implements ExprInfo
15: {
16: public function __construct(
17: public float $value,
18: public string $raw,
19: ) {
20: }
21:
22:
23: public function toString(): string
24: {
25: if (!is_finite($this->value)) {
26: return (string) $this->value;
27: }
28:
29: $json = json_encode($this->value, JSON_THROW_ON_ERROR);
30: return str_contains($json, '.') ? $json : "$json.0";
31: }
32: }
33: