芳季 发表于 2013-8-5 12:43:32

浮点数转整数过程

在屏幕上输入一个浮点数。经过浮点运算获得一个浮点数。然后这个浮点数用什么方法转换成长整数?
我现在的做法好像不太好使。
浮点转成字符
然后小数点前的字符转成整数。
绕了个圈。有没有更简单一点的方法啊?

leedspm 发表于 2013-8-15 13:54:45

回复 6# 芳季

float a
short b=1
int c
GetData(a, "Local HMI", LW, 0, 1)
c=a/b
SetData(c, "Local HMI", LW, 10, 1)

芳季 发表于 2013-8-16 11:07:36

本帖最后由 芳季 于 2013-8-16 11:18 编辑

kao.这都行。
不同类型可以混合运算!我想象中的混合计算结果,最后会以最高级的类型出现,却没有想到可以以指定的类型出现。
无论如何先试试。

lucy307188740 发表于 2015-1-12 20:46:22

强制类型转换,C语言里,=左边是定义成类型,=右边计算结果最终会强制成同一类型。basic也会继承这一规则

200409 发表于 2013-8-10 18:34:47

楼主,你是怎么转换的?可以详细一点吗?

芳季 发表于 2013-8-11 12:30:49

//本程序把一个浮点数做比例计算后输出一个32位整数。
//输入值在LW50。输出值在LW52。中间过程使用LW60~69
macro_command main()

float in
char data
int a
GetData (in, "Local HMI", LW, 50, 1)//获得屏幕数据
in=(in/(240*3.1416))*13042//计算传动结果
FLOAT2ASCII(in, data, 7)//浮点数转换字符
ASCII2DEC(data, a, 7)//字符转32位整数
SetData (a, "Local HMI", lw, 52, 1)//整数发送回屏幕显示伺服对应转速用
end macro_command
我做了这个程序,每次都是通过外部呼叫同步调用这个宏进行转换。好比带参数子程序一样。
但是我觉得过程比较烦。我也想看看有没有更简单的。

芳季 发表于 2013-8-11 12:35:09

我在屏上有好些数值输入变换都要通过这个比例转换的。我就把这个转换独立写成一个宏。然后哪里要用就调用这个宏。宏,留用一个输入口50,和一个输出口52,还有过程量60~69。你可以按思路使用这个结构获得子功能的调用效果。但是占用了的地址一定不能在你的程序上重复使用了。

200409 发表于 2013-8-11 14:26:49

已通过实验,很成功,这个应该是最简洁的方法了,谢谢楼主

芳季 发表于 2013-8-11 22:22:28

我还想更简洁的。不知道有没有,没有人回了。
你要注意我这转换是忽略小数点后面的全部数值的。

芳季 发表于 2013-8-16 11:17:48

哎呀呀呀呀!
真行的啊。
膜拜……中
(思维活动:尼玛,说明书上哪里有写这个事情啊?)
仍然膜拜……中……

200409 发表于 2013-8-16 12:13:15

牛人啊。
不知道小数点后的四舍五入部分有没有一并解决了呢?

芳季 发表于 2013-8-16 17:27:52

乘以100就是啦。
面前没办法的就照这样做。有办法了之后再按好办法做。
不能等人来救的。必须自己先有后路。没有后路的话就先别走进去。蠢方法是自己的学习过程,人家的好方法试经验的累积过程。毕竟是不同的过程啊。

200409 发表于 2013-8-17 22:54:02

7楼大哥的程序无法实现,不知道什么原因。

芳季 发表于 2013-8-18 22:22:30

你能理解了程序的语句吗?
一个透明玻璃杯放在桌面。人家手一指,问,那是什么?答:玻璃杯。
一个透明的玻璃杯放在桌面,里面装了牛奶。人家手一指,问,那是什么?答:那是牛奶。是牛奶。牛奶。奶。
那玻璃杯呢?

芳季 发表于 2013-8-18 22:28:15

程序是从LW0读出来的数,转换成品放到LW10里面。
你是这样做的吗?
你有没有用一个什么条件去触发宏的运行啊?
LW0和LW10的数据格式设定好了吗?
我做完上面三个事情,马上就验证成功了。

200409 发表于 2013-8-26 00:40:12

正如芳季哥所说的,我只是看到牛奶而忽略了玻璃杯。

今天重新实验,一次成功,(自省:做技术,来不得半点浮躁啊。。。)

芳季 发表于 2013-8-26 10:54:52

很好很好。自省。这个词用得很好。也做得很好。回帖也是回得很好。你回帖的时候也开心,我看见我也开心。

ljclwyf 发表于 2013-12-18 19:57:23

回复 7# leedspm


    可以说一下原理吗?浮点数除以短整数的1得到双整数,我实在是想不通这个原理。

ljclwyf 发表于 2013-12-18 20:12:21

回复 13# 芳季


    看到这段话就像看到了西门子论坛里的芳季大侠。是一个人吗?

allenhy 发表于 2015-1-11 10:36:15

哇 抓紧学习,急需解决的问题啊

allenhy 发表于 2015-1-11 10:38:41

楼主做的这个就是我想要的啊哈哈哈哈哈哈,不过我想把伺服转速转换成线速度,继续研究吧
页: [1] 2
查看完整版本: 浮点数转整数过程