Closed StarryPortrait closed 27 minutes ago
先确保你的平台支持浮点数运算,RyanJson使用以下format
标签。
char number_buffer[256] = {0};
double f = 16.89;
snprintf(number_buffer, sizeof(number_buffer), "%.1lf", f);
printf("%s\n", number_buffer);
snprintf(number_buffer, sizeof(number_buffer), "%e", f);
printf("%s\n", number_buffer);
snprintf(number_buffer, sizeof(number_buffer), "%lf", f);
printf("%s\n", number_buffer);
输出结果
16.9
1.689000e+001
16.890000
static RyanJsonBool RyanJsonPrintNumber(RyanJson_t pJson, printBuffer *buf)
可以在这个函数内部加上打印信息,确保正确进入number格式化输出函数了。
找到原因了,是因为使用的时 newlib-nano
去掉链接参数 -specs=nano.specs
就行了。
或者 使用 mpaland/printf 这个 printf 实现也可以
多谢开发者大佬的帮助
我使用的是 arm-none-eabi-gcc.exe (GCC) 13.3.0 ,在stm32f103ze中运行 类容如下
输出时只能得到, {"double":}