[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 424

 
转贴
Ilya12345:

大家好!我已经捣鼓了好几天的代码,但没有成功!我想知道为什么?这个条件不起作用。Z变量总是被分配到最后一个值,在这种情况下,它相当于Z=1。我需要解决什么问题才能使条件发挥作用?谁能提供帮助?

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
如果(0 < Y <= 0.03125)
{Z = 0.03125;}

如果(0.03126 < Y <= 0.0625)
{Z = 0.0625;}

如果(0.0625 < Y <= 0.09375)
{Z = 0.09375;}

如果(0.09375 < Y <= 0.125)
{Z = 0.125;}

如果(0.125 < Y <= 0.15625)
{Z = 0.15625;}

如果(0.15625 < Y <= 0.1875)
{Z = 0.1875;}

如果(0.1875 < Y <= 0.21875)
{Z = 0.21875;}

如果(0.21875 < Y <= 0.25)
{Z = 0.25;}

如果(0.25 < Y <= 0.28125)
{Z = 0.28125;}

如果(0.28125 < Y <= 0.3125)
{Z = 0.3125;}

如果(0.3125 < Y <= 0.34375)
{Z = 0.34375;}

如果(0.34375 < Y <= 0.375)
{Z = 0.375;}

如果(0.375 < Y <= 0.40625)
{Z = 0.40625;}

如果(0.40625 < Y <= 0.4375)
{Z = 0.4375;}

如果(0.4375 < Y <= 0.46875)
{Z = 0.46875;}

如果(0.46875 < Y <= 0.5)
{Z = 0.5;}

如果(0.5 < Y <= 0.53125)
{Z = 0.53125;}

如果(0.53125 < Y <= 0.5625)
{Z = 0.5625;}

如果(0.5625 < Y <= 0.59375)
{Z = 0.59375;}

如果(0.59375 < Y <= 0.625)
{Z = 0.625;}

如果(0.625 < Y <= 0.65625)
{Z = 0.65625;}

如果(0.65625 < Y <= 0.6875)
{Z = 0.6875;}

如果(0.6875 < Y <= 0.71875)
{Z = 0.71875;}

如果(0.71875 < Y <= 0.75)
{Z = 0.75;}

如果(0.75 < Y <= 0.78125)
{Z = 0.78125;}

如果(0.78125 < Y <= 0.8125)
{Z = 0.8125;}

如果(0.8125 < Y <= 0.84375)
{Z = 0.84375;}

如果(0.84375 < Y <= 0.875)
{Z = 0.875;}

如果(0.875 < Y <= 0.90625)
{Z = 0.90625;}

如果(0.90625 < Y <= 0.9375)
{Z = 0.9375;}

如果(0.9375 < Y <= 0.96875)
{Z = 0.96875;}

如果(0.96875 < Y <= 1)
{Z = 1;}
}
W = X + Z。




Ilya12345:

大家好!我已经捣鼓了好几天的代码,但没有成功!我想知道为什么?这个条件不起作用。变量Z总是被赋予最后一个值,在这种情况下,它等于Z=1。我需要解决什么问题才能使条件发挥作用?谁能帮帮我?


试试这个

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
Z = 0.03125;
  else
    if (0.03126 < Y <= 0.0625)
    Z = 0.0625;
      else
        if (0.0625 < Y <= 0.09375)
        Z = 0.09375;
          else
            if (0.09375 < Y <= 0.125)
            Z = 0.125;
              else
                if (0.125 < Y <= 0.15625)
                Z = 0.15625;
                  else
                  if (0.15625 < Y <= 0.1875)
                  Z = 0.1875;
                    else
                      if (0.1875 < Y <= 0.21875)
                      Z = 0.21875;
                        else
                          if (0.21875 < Y <= 0.25)
                          Z = 0.25;
else
if (0.25 < Y <= 0.28125)
Z = 0.28125;
  else
    if (0.28125 < Y <= 0.3125)
    Z = 0.3125;
      else
        if (0.3125 < Y <= 0.34375)
        Z = 0.34375;
          else
            if (0.34375 < Y <= 0.375)
            Z = 0.375;
              else
                if (0.375 < Y <= 0.40625)
                Z = 0.40625;
                  else
                    if (0.40625 < Y <= 0.4375)
                    Z = 0.4375;
                      else
                        if (0.4375 < Y <= 0.46875)
                        Z = 0.46875;
else
if (0.46875 < Y <= 0.5)
Z = 0.5;
  else
    if (0.5 < Y <= 0.53125)
    Z = 0.53125;
      else
        if (0.53125 < Y <= 0.5625)
        Z = 0.5625;
          else
            if (0.5625 < Y <= 0.59375)
            Z = 0.59375;
              else
                if (0.59375 < Y <= 0.625)
                Z = 0.625;
                  else
                    if (0.625 < Y <= 0.65625)
                    Z = 0.65625;
                      else
                        if (0.65625 < Y <= 0.6875)
                        Z = 0.6875;
                          else
                            if (0.6875 < Y <= 0.71875)
                            Z = 0.71875;
else
if (0.71875 < Y <= 0.75)
Z = 0.75; 
  else
    if (0.75 < Y <= 0.78125)
    Z = 0.78125;
      else
        if (0.78125 < Y <= 0.8125)
        Z = 0.8125; 
          else
            if (0.8125 < Y <= 0.84375)
            Z = 0.84375;
              else
                if (0.84375 < Y <= 0.875)
                Z = 0.875;
                  else
                    if (0.875 < Y <= 0.90625)
                    Z = 0.90625;
                      else
                        if (0.90625 < Y <= 0.9375)
                        Z = 0.9375;
                          else
                            if (0.9375 < Y <= 0.96875)
                            Z = 0.96875;
                              else
                                if (0.96875 < Y <= 1)
                                Z = 1;
} 
W = X + Z;
 
sergeev:
转自


像这样试试吧。


作品!!!!,真正的感谢!!特别是对及时性的感谢。
 
Ilya12345:

作品!!!!,真正的感谢!!特别是对及时性的感谢。


像这样的地方。

double mK[] ={0,0.03125,0.0625....,1};



 

   for (int i=0;i<(ArraySize(mK)-1);i++)
   
   {
    
     if (y>mK[i] && y<=mK[i+1]) 
        {z=mK[i+1];
         break;
        }
   } 
 

我有两个关于全局变量 的问题。

问题1:据说它们被储存在硬盘上。对它们的访问时间是像从文件中读取数据时一样长,还是像读取普通变量时一样快?

问题2:上面说全局变量只能是double类型,但如果我想存储其他类型的数据,如int或string,怎么办?

 
KONDOR:

1.我不能对速度有任何抱怨。

2.哪里写的?"所有类型都可以是全局的。

"不抱怨 "并不是一个真正的数学概念。

这里写到。

 
Elenn:

"不抱怨 "有点不是一个真正的数学概念。

这里写到。

它说,全局变量被保存在硬盘上,并存储一定的时间。当程序(终端、指示器、顾问)运行时,所有的变量都在RAM中,即G.P.的值只有在程序第一次启动时才会从磁盘中读取。
 
Temnyj:
它说,全局变量被保存在硬盘上,并存储一定的时间。当程序(终端、指标、专家顾问)运行时,所有的变量都存储在RAM中,即G.P.的值只有在程序首次启动时才会从磁盘中读取。

谢谢你提供的信息。第二个问题呢?
 
Elenn:

谢谢你提供的信息。第二个问题呢?

我不太明白第二个问题。

你最好在这里 阅读。

 
Temnyj:

我不太明白第二个问题。

你可能想在这里 阅读


当你退出程序时(重新启动电脑等),任何变量都会丢失。全局变量除外,因为它们被储存在硬盘上。但它们只能是double类型的。如果需要存储其他类型的变量(例如int或string),该怎么做?这里有什么不清楚的地方?

 
Elenn:


在退出程序(重启电脑等)时,任何变量都会丢失。全局变量除外,因为它们被储存在硬盘上。但它们只能是double类型的。如果需要存储其他类型的变量(例如int或string),该怎么做?这里有什么不清楚的地方?

有当前程序级别的全局变量和终端级别的全局变量。前者在去初始化时被重置,后者则不被重置。你显然是在谈论后者。

当然,举例来说,要把一个像double这样的数组从100项隐藏到这样的变量中是很难的。最好是根本不为这种目的使用它们。

使用一个文件来存储任何类型的数据。那里没有任何限制。而这种方法在任何时候都被大家所使用。