fix: shell print float

This commit is contained in:
factosea 2025-02-10 18:02:48 +08:00
parent edd5754f56
commit 54b1f37b1d
2 changed files with 6 additions and 14 deletions

View File

@ -699,13 +699,13 @@ int taos_print_row_with_size(char *str, uint32_t size, TAOS_ROW row, TAOS_FIELD
case TSDB_DATA_TYPE_FLOAT: {
float fv = 0;
fv = GET_FLOAT_VAL(row[i]);
len += tsnprintf(str + len, size - len, "%f", fv);
len += snprintf(str + len, size - len, "%.*g", FLT_DIG, fv);
} break;
case TSDB_DATA_TYPE_DOUBLE: {
double dv = 0;
dv = GET_DOUBLE_VAL(row[i]);
len += tsnprintf(str + len, size - len, "%lf", dv);
len += snprintf(str + len, size - len, "%.*g", DBL_DIG, dv);
} break;
case TSDB_DATA_TYPE_VARBINARY: {

View File

@ -672,12 +672,8 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
if (tsEnableScience) {
printf("%*.7e", width, GET_FLOAT_VAL(val));
} else {
n = tsnprintf(buf, LENGTH, "%*.7f", width, GET_FLOAT_VAL(val));
if (n > SHELL_FLOAT_WIDTH) {
printf("%*.7e", width, GET_FLOAT_VAL(val));
} else {
printf("%s", buf);
}
n = snprintf(buf, LENGTH, "%.*g", FLT_DIG, GET_FLOAT_VAL(val));
printf("%s", buf);
}
break;
case TSDB_DATA_TYPE_DOUBLE:
@ -685,12 +681,8 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
snprintf(buf, LENGTH, "%*.15e", width, GET_DOUBLE_VAL(val));
printf("%s", buf);
} else {
n = tsnprintf(buf, LENGTH, "%*.15f", width, GET_DOUBLE_VAL(val));
if (n > SHELL_DOUBLE_WIDTH) {
printf("%*.15e", width, GET_DOUBLE_VAL(val));
} else {
printf("%*s", width, buf);
}
n = snprintf(buf, LENGTH, "%.*g", DBL_DIG, GET_DOUBLE_VAL(val));
printf("%s", buf);
}
break;
case TSDB_DATA_TYPE_VARBINARY: {