OQ中,如何对double类型的数据取整?

Discussion in 'OpenQuant' started by gzpony, Oct 19, 2009.

  1. OQ的脚本中,如何把double类型的数据转换为int类型的,以及反过来int转换成double的。

    找了一下,好像并不容易找到。OQ没有文档对此说明。

    把double类型的数据转换为int类型,其实就是想把带小数的数据取整。有些品种的价格必须是5或者是10的倍数才是合法的价格,这就牵涉到取整的问题了。
     
  2. 谢谢ilian兄的回复。我就是试过直接按c#的取整语法写进去OQ脚本,OQ认不出来。
    看ilian兄的说法,我为了做个取整,就要用写个.net扩展?
     
  3. zwz

    zwz

    试试
    (int) Math.Floor(....)
    (int) Math.Ceiling(....)
     
  4. 呵呵,其实我说的就是按c#的取整语法写进去OQ脚本的,至于认不出来可能是有些地方写的不对吧。
     
  5. 谢谢ZWZ兄和ilian兄,回头我试试看
     
  6. 试了,报错说:当前上下文中不存在名称“Math”

    看来不行,再想办法咯。
     
  7. zwz

    zwz

    别放弃,肯定行的:)

    Math类在System命名空间中,你可以引用System命名空间或者使用全限定名!
    下面两种写法都是可以的:

    方法一:
    using System;//把这一句放在代码顶部
    ...


    double d=1.23456;
    int i=(int)Math.Floor(d);
    Console.WriteLine("{0} {1}",d,i);


    方法二:
    double d=1.23456;
    int i=(int)System.Math.Floor(d);
    System.Console.WriteLine("{0} {1}",d,i);


    如果还不行,请检查一下OQ选项,确保References中已经选了System.dll。。。
     
  8. ok了,没注意到这里也要using

    谢谢zwz兄 :)