@@ -450,11 +450,10 @@ encoding integer numbers larger than 32-bit.
450
450
451
451
### Float
452
452
453
- The Float scalar type represents signed double-precision finite (i.e., not {NaN}
454
- or {Infinity}) fractional values as specified by
455
- [ IEEE 754] ( https://en.wikipedia.org/wiki/IEEE_floating_point ) . Response formats
456
- that support an appropriate double-precision number type should use that type to
457
- represent this scalar.
453
+ The Float scalar type represents signed double-precision finite values as
454
+ specified by [ IEEE 754] ( https://en.wikipedia.org/wiki/IEEE_floating_point ) .
455
+ Response formats that support an appropriate double-precision number type should
456
+ use that type to represent this scalar.
458
457
459
458
** Result Coercion**
460
459
@@ -466,14 +465,18 @@ reasonable without losing information, otherwise they must raise a field error.
466
465
Examples of this may include returning ` 1.0 ` for the integer number ` 1 ` , or
467
466
` 123.0 ` for the string ` "123" ` .
468
467
468
+ Non-finite floating-point internal values ({NaN} and {Infinity}) cannot be
469
+ coerced to {Float} and must raise a field error.
470
+
469
471
** Input Coercion**
470
472
471
473
When expected as an input type, both integer and float input values are
472
474
accepted. Integer input values are coerced to Float by adding an empty
473
475
fractional part, for example ` 1.0 ` for the integer input value ` 1 ` . All
474
476
other input values, including strings with numeric content, must raise a query
475
- error indicating an incorrect type. If the integer input value represents a
476
- value not representable by IEEE 754, a query error should be raised.
477
+ error indicating an incorrect type. If the input value otherwise represents a
478
+ value not representable by finite IEEE 754 (e.g. {NaN}, {Infinity}, or an
479
+ integer above the precision of a float), a query error should be raised.
477
480
478
481
479
482
### String
0 commit comments