fix: float display issue

This commit is contained in:
dapan1121 2024-10-31 17:08:07 +08:00
parent eaea66cf48
commit 726594b926
2 changed files with 4 additions and 3 deletions

View File

@ -241,14 +241,14 @@ typedef struct {
case TSDB_DATA_TYPE_FLOAT: { \
int32_t n = snprintf(_output, (int32_t)(_outputBytes), "%f", *(float *)(_input)); \
if (n >= (_outputBytes)) { \
snprintf(_output, (int32_t)(_outputBytes), "%*.7f", (int32_t)((_outputBytes) - 1), *(float *)(_input)); \
snprintf(_output, (int32_t)(_outputBytes), "%.7e", *(float *)(_input)); \
} \
break; \
} \
case TSDB_DATA_TYPE_DOUBLE: { \
int32_t n = snprintf(_output, (int32_t)(_outputBytes), "%f", *(double *)(_input)); \
if (n >= (_outputBytes)) { \
snprintf(_output, (int32_t)(_outputBytes), "%*.7f", (int32_t)((_outputBytes) - 1), *(double *)(_input)); \
snprintf(_output, (int32_t)(_outputBytes), "%.15e", *(double *)(_input)); \
} \
break; \
} \

View File

@ -2085,7 +2085,8 @@ int32_t castFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutp
(void)memcpy(varDataVal(output), convBuf, len);
varDataSetLen(output, len);
} else {
NUM_TO_STRING(inputType, input, bufSize, buf);
int32_t outputSize = TMIN(outputLen - VARSTR_HEADER_SIZE, bufSize);
NUM_TO_STRING(inputType, input, outputSize, buf);
int32_t len = (int32_t)strlen(buf);
len = (outputLen - VARSTR_HEADER_SIZE) > len ? len : (outputLen - VARSTR_HEADER_SIZE);
(void)memcpy(varDataVal(output), buf, len);