欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 如何规范变量小数位格式

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3875人关注过本帖树形打印复制链接

主题:如何规范变量小数位格式

帅哥哟,离线,有人找我吗?
sunset0920
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:36 积分:192 威望:0 精华:0 注册:2012/5/4 9:50:50
MACD  发帖心情 Post By:2012/8/10 10:15:19 [只看该作者]

Set Data1 = MarketData.GetHistoryData("IF08","ZJ",0)
    CP1  = Data1.Close(Data1.Count-1)
    Application.MsgOut cp1
Set Data2 = MarketData.GetHistoryData("IF09","ZJ",0)
    CP2  = Data2.Close(Data2.Count-1)
    application.MsgOut CP2
    Spread=CP2  - CP1

 

结果:

2417
2428.8
11.80005

每次运行,spread都有5位小数。实际上,应该为1位,如11.8。 如何才能使数据保留一位小数?即是,如何规范变量数位格式?


 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/8/10 10:32:07 [只看该作者]

使用round函数,取1位小数就行了。如:round(cp2-cp1,1)

 


 回到顶部
帅哥哟,离线,有人找我吗?
sunset0920
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:36 积分:192 威望:0 精华:0 注册:2012/5/4 9:50:50
  发帖心情 Post By:2012/8/10 11:09:22 [只看该作者]

我曾尝试过,但仍带有小数,原以为round函数在vba不可用呢。

for i =  N to  1 step -1
Set HD1 = MarketData.GetHistoryData("IF08","ZJ",0)
    CP1i = HD1.Close(HD1.Count-i)
    Application.MsgOut cp1i
Set HD2 = MarketData.GetHistoryData("IF09","ZJ",0)
    CP2i = HD2.Close(HD2.Count-i)
    application.MsgOut CP2i
    Spreadi=CP2i -CP1i

call  round (Spreadi)
   application.MsgOut Spreadi

 

 

结果:

 2415.4
2427
11.6001
2414.8
2427.2
12.3999
2414.8
2426.4
11.59985
2413.2
2425
11.80005
2414
2425.8
11.80005

 

 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/8/10 11:34:13 [只看该作者]

round (Spreadi)
后面没有设置小数位数,改为round(spreadi,1)

 回到顶部
帅哥哟,离线,有人找我吗?
sunset0920
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:36 积分:192 威望:0 精华:0 注册:2012/5/4 9:50:50
  发帖心情 Post By:2012/8/10 12:11:25 [只看该作者]

应该得加个语句 ti=round (Spreadi,1)
    
    Spreadi=CP2i -CP1i
    ti=round (Spreadi,1)
   
   application.MsgOut ti
 
谢谢您 终于解决了
虽然准备了1个多月,但当开始尝试着编写时,发现有很多细节有多难。
 
在此特别感谢你们指导
 

 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/8/10 15:09:02 [只看该作者]

困难是每一个开发人员都必须经历的,磨难之后就会轻松很多了。


 回到顶部