diff options
| author | Luca Ivaldi <luca.ivaldi.75@gmail.com> | 2023-11-24 17:31:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-24 18:31:12 +0200 |
| commit | 3acb0e30a06d7ef7ece9257bc3423b9c85a12c06 (patch) | |
| tree | cd1374c808210688c5800f51dcd65adc8f148771 /lib | |
| parent | 54f4abae2f811c6de1d5c5156961e1bd75405aa6 (diff) | |
| download | zig-3acb0e30a06d7ef7ece9257bc3423b9c85a12c06.tar.gz zig-3acb0e30a06d7ef7ece9257bc3423b9c85a12c06.zip | |
std.fmt: fix overflow when formatting comptime_float
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/fmt.zig | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig index b93138d979..c93b8363a7 100644 --- a/lib/std/fmt.zig +++ b/lib/std/fmt.zig @@ -1302,7 +1302,7 @@ pub fn formatFloatDecimal( // We may have to zero pad, for instance 1e4 requires zero padding. try writer.writeAll(float_decimal.digits[0..num_digits_whole_no_pad]); - var i = num_digits_whole_no_pad; + var i: usize = num_digits_whole_no_pad; while (i < num_digits_whole) : (i += 1) { try writer.writeAll("0"); } @@ -1360,7 +1360,7 @@ pub fn formatFloatDecimal( // We may have to zero pad, for instance 1e4 requires zero padding. try writer.writeAll(float_decimal.digits[0..num_digits_whole_no_pad]); - var i = num_digits_whole_no_pad; + var i: usize = num_digits_whole_no_pad; while (i < num_digits_whole) : (i += 1) { try writer.writeAll("0"); } @@ -2059,6 +2059,8 @@ test "comptimePrint" { @setEvalBranchQuota(2000); try std.testing.expectEqual(*const [3:0]u8, @TypeOf(comptimePrint("{}", .{100}))); try std.testing.expectEqualSlices(u8, "100", comptimePrint("{}", .{100})); + try std.testing.expectEqualStrings("30", comptimePrint("{d}", .{30.0})); + try std.testing.expectEqualStrings("30.0", comptimePrint("{d:3.1}", .{30.0})); } test "parse u64 digit too big" { |
