[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 83

 
Geowind64:

罗曼,谢谢你的答复.....不幸的是,我仍然不明白一件事。在教科书中,https://book.mql4.com/ru/basics/expressions,在 "类型诱导 "下。方案4.1.计 算一个整数类型的结果

变体4.2。 类似的情况发生在寻找一个实数类型的结果时",给出了同样的公式,但在一种情况下,变量F的类型被表示为int

而在第二个例子中,该变量是双倍的

不幸的是,我仍然不理解这种转换的逻辑。如果在第一个变体中,很清楚为什么int被分配给了变量F(即根据隐式类型转换规则),那么在第二个变体中为什么double....?完全让我困惑。

请澄清我在这里的解释中可能遗漏了什么?

提前感谢。

好吧,有一些相当复杂的东西描述了编译器工作的特殊性,在实践中并不真正需要。它们可以被安全地跳过。

我们唯一要拿出来的是

  • 如果一个表达式包含不同类型的操作数,表达式的类型将被转换为具有较高优先级的类型;int、bool、color和datetime类型具有相同的优先级,double类型--较高的优先级,string类型--最高优先级。
  • 如果赋值操作符号右边的表达式的类型与赋值操作符号左边的变量的类型不匹配,那么表达式的值将被转换为赋值操作符号左边的变量的类型;这被称为转换为目标类型。
  • 禁止将字符串值转换为任何其他目标类型。

至于例子,只需写出类型

int = double + int (你说的是加号右边的int被转换为double,然后操作数被相加,然后结果被转换为被分配的变量的类型。)

double = double + int (大致相同,只是没有最后的转换,double被立即分配)

 
Roman.:

伙计们,#INF 是什么意思--它是否超出了双倍数的允许范围? 如何计算TWR变量所取的这些数值是正确的?

我想知道。可能有一天#INF也会出现而不是平衡?:):):)

 
Roman.:

伙计们,#INF 是什么意思--它是否超出了双倍数的允许范围?见从头开始的第二行 (它计算双倍数TWR的乘积,即它的前一个值乘以后一个值)。计算TWR变量所取的THOSE值的正确方法是什么?

无穷无尽...只能通过降低食欲来治疗,TWR值太大了。
 
splxgf:
无限大就是无限大...只有通过减少食欲才能治愈,TWR值太高了。

哦,真的吗?

有些潇洒哥不是绕着山走,而是反着走,只走上坡路,上坡路!:)))))

 
MaxZ:

我想知道。是否也会出现#INF而不是平衡?:):):)


不好笑。我宁愿有事情做...

 
splxgf:
这是无限的...只能通过减少食欲来治疗,TWR值太高。


该怎么做?

这里--一切都在这里,都在书中......所有的胃口都是严格按照R.Vince的方法论进行的。

 
Roman.:


不好笑。你最好说到重点...

我在上一页写了我的建议。

 
Roman.:


该怎么做?

这里--一切都在这里,都在书中......所有的食欲都严格按照R.Vince的方法进行。


也许在这一周里,我会想出一个更好的办法来。但我大部分的空闲时间都在忙于我的工作。
 
Vinin:

也许在这一周里,我将考虑最好的方法。但我大部分的空闲时间都在忙于我的工作。

谢谢你,维克多。
 
MaxZ:

我在上一页写了我的建议。


对不起,没有注意到...:-)))

我检查了好几遍--没有错误,一切都严格按照公式进行。

显然,有必要将产品分成若干部分,然后对它们进行比较...在此 阅读更多信息