TC官方合作论坛

标题: 我不是新手,但是遇到奇怪的问题,请帮我,谢谢 [打印本页]

作者: redapple2004    时间: 2016-1-10 23:57
标题: 我不是新手,但是遇到奇怪的问题,请帮我,谢谢
源代码片段如下:

功能 按钮0_点击()
变量 a=10
        a=a+((1150-a)/1150)*120
        调试输出(转字符型(a))
结束



就是点击一个按钮,在输出栏中显示被改变的变量a,但是实际上这个变量a没有被改变,还是等于10,我就搞不懂了,这个问题关系到一个很重要的脚本的开发,请告诉我为什么那个表达式a=a+((1150-a)/1150)*120没起作用,谢谢!


作者: chen71512    时间: 2016-1-11 03:18
请将a = 10 改成 a = 10.0
作者: 民工唐子    时间: 2016-1-11 03:22
因为计算没有4舍5入,默认计算的是整型,就是小数点后面的忽略.
应该是这样的,a=a+转浮点型(1150-a)/1150*120
作者: redapple2004    时间: 2016-1-11 06:30
今天早上一起床就看到你的消息,虽然现在还没有具体测试,但是首先要感谢你。希望就是你所说的这个原因造成计算结果出错,真的很感谢!
作者: 言术    时间: 2016-1-11 06:42
首先咱们先看看为什么等于10
第一步:1150-10=1140
第二步:1140/1150=0  //因为结果为0.9xxx,而整形不能显示小数点以后的位数的
第三部:0*120=0
第四部:10+0=10
所以结果为10

就像楼上所说,把变量a改为浮点型,整个公式才会带小数计算

变量 a=10.0
a=a+((1150-a)/1150)*120
调试输出(a)
调试输出(转整型(a))//四舍五入
调试输出(取整(a))
作者: redapple2004    时间: 2016-1-11 06:51
我做了测试了,2楼chen71512的方法是对的,民工唐子你的方法依然不能计算出正确结果,谢谢你们帮我找到解决方法!
作者: canyue514    时间: 2016-1-11 08:32
新手!!!!!!!!!!!!!!!!!!!!!!!!!!




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1