1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-02 17:26:44 +03:00

Increased precision of floating-point to decimal conversions when the

floating point value has no fractional part.
[forum:/forumpost/d1387c3979c7f557|Forum post d1387c3979c7f557]

FossilOrigin-Name: 18de3a8e6b431a075143631eafdcf0e1b1a21868b417394c365d46d2feca10b5
This commit is contained in:
drh
2023-02-23 21:18:47 +00:00
parent 648de49c03
commit 4df23a3248
4 changed files with 130 additions and 48 deletions

View File

@ -3786,4 +3786,39 @@ do_execsql_test printf-16.1 {
SELECT printf('%.*g',2147483647,0.01);
} {0.01}
# 2023-02-23 https://sqlite.org/forum/forumpost/d1387c3979c7f557
# Loss of precision when doing floating-point to decimal
# conversions on values that have no factional part.
#
do_execsql_test printf-17.1 {
SELECT format('%!.20g', 13.0);
} 13.0
do_execsql_test printf-17.2 {
SELECT format('%.3e', 199990000.0);
} 2.000e+08
do_execsql_test printf-17.3 {
SELECT format('%.3f', 199990000.0);
} 199990000.000
do_execsql_test printf-17.4 {
SELECT format('%.3g', 199990000.0);
} 2e+08
do_execsql_test printf-17.5 {
SELECT format('%.4e', 199990000.0);
} 1.9999e+08
do_execsql_test printf-17.6 {
SELECT format('%.4f', 199990000.0);
} 199990000.0000
do_execsql_test printf-17.7 {
SELECT format('%.4g', 199990000.0);
} 2e+08
do_execsql_test printf-17.8 {
SELECT format('%.5e', 199990000.0);
} 1.99990e+08
do_execsql_test printf-17.9 {
SELECT format('%.5f', 199990000.0);
} 199990000.00000
do_execsql_test printf-17.10 {
SELECT format('%.5g', 199990000.0);
} 1.9999e+08
finish_test