上位机软件

DA_yd 2013-07-10 04:50:11
通过usb串口上传数据到上位机,其中数据是小数比如是8.4,到上位机软件显示出来8.4,这是没错的,但是比如4.0,到上位机软件显示出来4,为什么不是4.0啊,请问这是什么原因?
...全文
170 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
不会再变le 2013-07-15
  • 打赏
  • 举报
回复
最简单的办法:统统都按字符串来传输
图灵狗 2013-07-11
  • 打赏
  • 举报
回复
我这本strdata得到的是0.4,你可以单步调试,看看strdata的值是多少,估计你显示组件的问题。
引用 8 楼 DA_yd 的回复:
引用 6 楼 turingo 的回复:
格式没有问题,你用sprintf试试看,Format说不定有问题:

#include <stdio.h>

int main(void)
{
    char strdata[32];
    
    sprintf(strdata, "%-.1f\n", 0.4);
    printf("%s\n", strdata);
    
    return 0;
}
[quote=引用 4 楼 DA_yd 的回复:] [quote=引用 2 楼 adlay 的回复:] 软件里面自己格式化来显示的呗
引用 3 楼 turingo 的回复:
取决于上位机的格式化浮点数到字符串的处理。 [quote=引用 1 楼 DA_yd 的回复:] 又数据0.4,到上位机软件显示出来是.4,不是0.4
strdata.Format("%-.1f",shld_data); 这样好像没错吧,应该怎么处理?[/quote][/quote]好像改了没作用,还是显示的.4。。。[/quote]
DA_yd 2013-07-11
  • 打赏
  • 举报
回复
引用 9 楼 adlay 的回复:
strdata 是 CString 类型吗? 用 "%1.1f" 试试
是CString类型,改“%1.1f”没用,我改成“%.2f”也没用,还是一样显示.4。。。
www_adintr_com 2013-07-11
  • 打赏
  • 举报
回复
strdata 是 CString 类型吗? 用 "%1.1f" 试试
DA_yd 2013-07-11
  • 打赏
  • 举报
回复
引用 6 楼 turingo 的回复:
格式没有问题,你用sprintf试试看,Format说不定有问题:

#include <stdio.h>

int main(void)
{
    char strdata[32];
    
    sprintf(strdata, "%-.1f\n", 0.4);
    printf("%s\n", strdata);
    
    return 0;
}
引用 4 楼 DA_yd 的回复:
[quote=引用 2 楼 adlay 的回复:] 软件里面自己格式化来显示的呗
引用 3 楼 turingo 的回复:
取决于上位机的格式化浮点数到字符串的处理。 [quote=引用 1 楼 DA_yd 的回复:] 又数据0.4,到上位机软件显示出来是.4,不是0.4
strdata.Format("%-.1f",shld_data); 这样好像没错吧,应该怎么处理?[/quote][/quote]好像改了没作用,还是显示的.4。。。
DA_yd 2013-07-11
  • 打赏
  • 举报
回复
引用 5 楼 adlay 的回复:
你是觉得它这样处理不是你想要的, 要改, 还是说想知道它是用什么办法来输出显示的?
不是我想要的,我要的是显示出0.4这样的,我改了格式,不知道为什么还是一样的显示.4
图灵狗 2013-07-11
  • 打赏
  • 举报
回复
格式没有问题,你用sprintf试试看,Format说不定有问题:

#include <stdio.h>

int main(void)
{
    char strdata[32];
    
    sprintf(strdata, "%-.1f\n", 0.4);
    printf("%s\n", strdata);
    
    return 0;
}
引用 4 楼 DA_yd 的回复:
引用 2 楼 adlay 的回复:
软件里面自己格式化来显示的呗
引用 3 楼 turingo 的回复:
取决于上位机的格式化浮点数到字符串的处理。 [quote=引用 1 楼 DA_yd 的回复:] 又数据0.4,到上位机软件显示出来是.4,不是0.4
strdata.Format("%-.1f",shld_data); 这样好像没错吧,应该怎么处理?[/quote]
www_adintr_com 2013-07-11
  • 打赏
  • 举报
回复
你是觉得它这样处理不是你想要的, 要改, 还是说想知道它是用什么办法来输出显示的?
DA_yd 2013-07-11
  • 打赏
  • 举报
回复
引用 2 楼 adlay 的回复:
软件里面自己格式化来显示的呗
引用 3 楼 turingo 的回复:
取决于上位机的格式化浮点数到字符串的处理。
引用 1 楼 DA_yd 的回复:
又数据0.4,到上位机软件显示出来是.4,不是0.4
strdata.Format("%-.1f",shld_data); 这样好像没错吧,应该怎么处理?
图灵狗 2013-07-10
  • 打赏
  • 举报
回复
取决于上位机的格式化浮点数到字符串的处理。
引用 1 楼 DA_yd 的回复:
又数据0.4,到上位机软件显示出来是.4,不是0.4
www_adintr_com 2013-07-10
  • 打赏
  • 举报
回复
软件里面自己格式化来显示的呗
DA_yd 2013-07-10
  • 打赏
  • 举报
回复
又数据0.4,到上位机软件显示出来是.4,不是0.4

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧