FFstrbuf: improves double formatting precision handling

This commit is contained in:
李通洲
2025-08-19 16:03:04 +08:00
parent 8e282a3865
commit a7eecf6fc7
3 changed files with 41 additions and 10 deletions
+32
View File
@@ -747,6 +747,10 @@ int main(void)
ffStrbufAppendDouble(&strbuf, 120.0, 0);
VERIFY(ffStrbufEqualS(&strbuf, "120"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 120.0, 1);
VERIFY(ffStrbufEqualS(&strbuf, "120.0"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 120.0, 5);
VERIFY(ffStrbufEqualS(&strbuf, "120.00000"));
@@ -757,6 +761,10 @@ int main(void)
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 120.123456789, 0);
VERIFY(ffStrbufEqualS(&strbuf, "120"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 120.123456789, -1);
VERIFY(ffStrbufEqualS(&strbuf, "120.123456789"));
ffStrbufClear(&strbuf);
@@ -767,6 +775,10 @@ int main(void)
ffStrbufAppendDouble(&strbuf, -120.0, 0);
VERIFY(ffStrbufEqualS(&strbuf, "-120"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -120.0, 1);
VERIFY(ffStrbufEqualS(&strbuf, "-120.0"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -120.0, 5);
VERIFY(ffStrbufEqualS(&strbuf, "-120.00000"));
@@ -777,6 +789,10 @@ int main(void)
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -120.123456789, 0);
VERIFY(ffStrbufEqualS(&strbuf, "-120"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -120.123456789, -1);
VERIFY(ffStrbufEqualS(&strbuf, "-120.123456789"));
ffStrbufClear(&strbuf);
@@ -791,6 +807,22 @@ int main(void)
ffStrbufAppendDouble(&strbuf, -1.2345e50, 1);
VERIFY(ffStrbufEqualS(&strbuf, "-1.2345e50"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 1.2345e50, 0);
VERIFY(ffStrbufEqualS(&strbuf, "1.2345e50"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -1.2345e50, 0);
VERIFY(ffStrbufEqualS(&strbuf, "-1.2345e50"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 1.2345e50, -1);
VERIFY(ffStrbufEqualS(&strbuf, "1.2345e50"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, -1.2345e50, -1);
VERIFY(ffStrbufEqualS(&strbuf, "-1.2345e50"));
ffStrbufClear(&strbuf);
ffStrbufAppendDouble(&strbuf, 1.2345e20, 1);
VERIFY(ffStrbufEqualS(&strbuf, "123450000000000000000.0"));