| ... | ... | @@ -627,10 +627,16 @@ pub fn Serializer(Writer: type) type { |
| 627 | 627 | return self.writer.writeAll("inf"); |
| 628 | 628 | } else if (std.math.isNegativeInf(val)) { |
| 629 | 629 | return self.writer.writeAll("-inf"); |
| 630 | } else if (std.math.isNegativeZero(val)) { |
| 631 | return self.writer.writeAll("-0.0"); |
| 632 | } else { |
| 633 | try std.fmt.format(self.writer, "{d}", .{val}); |
| 634 | }, |
| 635 | .comptime_float => if (val == 0) { |
| 636 | return self.writer.writeAll("0"); |
| 630 | 637 | } else { |
| 631 | 638 | try std.fmt.format(self.writer, "{d}", .{val}); |
| 632 | 639 | }, |
| 633 | | .comptime_float => try std.fmt.format(self.writer, "{d}", .{val}), |
| 634 | 640 | else => comptime unreachable, |
| 635 | 641 | } |
| 636 | 642 | } |
| ... | ... | @@ -2103,10 +2109,11 @@ test "std.zon stringify primitives" { |
| 2103 | 2109 | \\ .b = 0.3333333333333333333333333333333333, |
| 2104 | 2110 | \\ .c = 3.1415926535897932384626433832795028, |
| 2105 | 2111 | \\ .d = 0, |
| 2106 | | \\ .e = -0, |
| 2107 | | \\ .f = inf, |
| 2108 | | \\ .g = -inf, |
| 2109 | | \\ .h = nan, |
| 2112 | \\ .e = 0, |
| 2113 | \\ .f = -0.0, |
| 2114 | \\ .g = inf, |
| 2115 | \\ .h = -inf, |
| 2116 | \\ .i = nan, |
| 2110 | 2117 | \\} |
| 2111 | 2118 | , |
| 2112 | 2119 | .{ |
| ... | ... | @@ -2115,9 +2122,10 @@ test "std.zon stringify primitives" { |
| 2115 | 2122 | .c = std.math.pi, |
| 2116 | 2123 | .d = 0.0, |
| 2117 | 2124 | .e = -0.0, |
| 2118 | | .f = std.math.inf(f32), |
| 2119 | | .g = -std.math.inf(f32), |
| 2120 | | .h = std.math.nan(f32), |
| 2125 | .f = @as(f128, -0.0), |
| 2126 | .g = std.math.inf(f32), |
| 2127 | .h = -std.math.inf(f32), |
| 2128 | .i = std.math.nan(f32), |
| 2121 | 2129 | }, |
| 2122 | 2130 | .{}, |
| 2123 | 2131 | ); |