浮点数和整数 点击:623 | 回复:11



jiangminxi0

    
发表于:2012-03-15 20:52:40
楼主
求助帖5分-已结帖
请问大家一个不解的问题:在西门子S7-300PLC中,在和模拟量输出有关的一些计算中很多程序都用                   
浮点数进行计算,而不用双整数,而手册里整数的执行时间比浮点数短,精度的位数也比浮点数多,
这是怎么考虑的?         


楼主最近还看过



西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:59帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2012-03-15 20:56:44
1楼

模拟量带小数点。整数不带小数点。这个不需要考虑吧?

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:59帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2012-03-15 20:57:30
2楼

楼主不会浮点数还没搞懂吧?

茗风

  • 精华:4帖
  • 求助:1帖
  • 帖子:83帖 | 1272回
  • 年度积分:0
  • 历史总积分:5069
  • 注册:2006年11月16日
发表于:2012-03-16 08:33:50
3楼
引用 西玛仪表 028-66505957 13808018567 的回复内容:模拟量带小数点。整数不带小数点。这个不需要考虑吧?



说的经典,一语中的。

狼牙精神

  • 精华:6帖
  • 求助:5帖
  • 帖子:469帖 | 5379回
  • 年度积分:3
  • 历史总积分:62964
  • 注册:2020年3月27日
发表于:2012-03-16 08:47:01
4楼
引用 西玛仪表 028-66505957 13808018567 的回复内容:模拟量带小数点。整数不带小数点。这个不需要考虑吧?

这就是原因。

zhxl198808——工控人生

  • 精华:7帖
  • 求助:14帖
  • 帖子:79帖 | 3915回
  • 年度积分:0
  • 历史总积分:22219
  • 注册:2008年9月06日
发表于:2012-03-16 19:57:58
5楼
引用 西玛仪表 028-66505957 13808018567 的回复内容:模拟量带小数点。整数不带小数点。这个不需要考虑吧?



jiangminxi0

  • 精华:0帖
  • 求助:2帖
  • 帖子:4帖 | 2回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年8月02日
发表于:2012-03-17 09:07:09
6楼
模拟量带小数点,没看明白,模拟量采集进来的是整数啊?

robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2012-03-17 12:51:34
7楼

习惯问题。我几乎不用浮点运算,用整数运算替代。需要小数点就先乘以10的n次方。比如3位小数,就先乘以1000,再做其它运算。

亚空间

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 22回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2004年6月12日
发表于:2012-03-21 20:21:58
8楼
不用浮点运算,很真是蛮有个性的啊。

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:27帖 | 3065回
  • 年度积分:0
  • 历史总积分:12427
  • 注册:2008年9月18日
发表于:2012-03-22 08:58:20
9楼

引用 robotH 的回复内容:习惯问题。我几乎不用浮点运算,用整数运算替代。需要小数点就先乘以10的n次方。比如3位小数,就先乘以1000,再做其它运算。


你一个字 的数据类型 还可以, 哪要是 超出 65535 哪, 是不是要占用 2个字?


浮点数有时候还必须要用的...........

杭州双星普天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 725回
  • 年度积分:0
  • 历史总积分:1683
  • 注册:2012年3月02日
发表于:2012-03-22 09:42:02
10楼

我们做运算一般使用两种方法

1. 浮点,这个可以保持比较高的精度,一般都是使用一些数学运算规则,来实现的,它比较消耗资源。

2. 整数定长方法来处理,这种方法比较简洁,速度快,消耗的资源也少,一般这种方法在资源比较紧缺的情况下使用。

 

举个例子, 1/2 ,如果使用浮点计算 =0.5,但是如果使用整数计算就 = 0,但是为了获得0.5这个数据,1必须先乘以10,然后再处理,你需要的精度越高,放大的倍数要越大,而且如果计算的内容很多,会产生累积误差。同时还要注意溢出问题,正负问题等。

 

用什么还是要看的。

dugang

  • 精华:0帖
  • 求助:11帖
  • 帖子:95帖 | 453回
  • 年度积分:0
  • 历史总积分:1299
  • 注册:2005年4月26日
发表于:2012-03-22 18:29:47
11楼

领教了,我还没有用过浮点数哦,大部分时间都是先乘后除来解决的,

SSI ļʱ