fix cases

This commit is contained in:
blueloveTH 2026-06-18 10:41:57 +08:00
parent 6d2c0d0881
commit 539f780003
2 changed files with 11 additions and 4 deletions

View File

@ -54,9 +54,9 @@ void c11_sbuf__write_f64(c11_sbuf* self, double val, int precision) {
char b[32]; char b[32];
int size; int size;
if(precision < 0) { if(precision < 0) {
size = snprintf(b, sizeof(b), "%.*g", 15, val); for(int g = 15; g <= 17; g++) {
if(strtod(b, NULL) != val) { size = snprintf(b, sizeof(b), "%.*g", g, val);
size = snprintf(b, sizeof(b), "%.*g", 17, val); if(strtod(b, NULL) == val) break;
} }
c11_sbuf__write_cstr(self, b); c11_sbuf__write_cstr(self, b);
bool all_is_digit = true; bool all_is_digit = true;

View File

@ -65,6 +65,7 @@ assert f'{a:010.2f}' == '0000010.00'
assert f'{a:.2f}' == '10.00' assert f'{a:.2f}' == '10.00'
assert f'{a:.5f}' == '10.00000' assert f'{a:.5f}' == '10.00000'
assert f'{2.5:.0f}' == '2' assert f'{2.5:.0f}' == '2'
assert '{:.0f}'.format(2.5) == '2'
b = '123' b = '123'
assert f'{b:10}' == '123 ' assert f'{b:10}' == '123 '
@ -141,3 +142,9 @@ assert f'{A():10}' == 'A '
a = ['1', '2', '3'] a = ['1', '2', '3']
assert f'a = {'\n'.join(a)}' == 'a = 1\n2\n3' assert f'a = {'\n'.join(a)}' == 'a = 1\n2\n3'
assert str(0.1+0.2) == '0.30000000000000004'
assert str(1/2) == '0.5'
assert str(1/3) == '0.3333333333333333'
assert str(1/4) == '0.25'
assert str(1/7) == '0.14285714285714285'