【发布时间】:2014-01-06 19:49:44
【问题描述】:
我有这行代码:
int WStoneCost = PriceMethod.StoneCost / 100 * AP;
而 PriceMethod.StoneCost 等于 25 而 AP 等于 70。 我已经使用断点对其进行了检查,但我不明白为什么在运行此行后会得到零。 (WStoneCost 等于零) 它只是一个错误的符号还是我做错了什么?提前致谢。 最后如何获得正确的双倍?喜欢 17。5
【问题讨论】:
-
也许你的一些变量是整数而不是浮点数。
(int)(25 / 100)等于 0。 -
@JonathanWood:我会说有 100% 的机会。
-
都是整数。抱歉,我是新手。
-
@paqogomez 不,
*和/运算符是从左到右应用的,所以它相当于(25/100) * 70 -
@paqogomez - 它真的优先于乘除吗?当我运行这行代码时:
double WStoneCost = 25.0 / 100.0 * 70;结果是 17.5。我的理解是乘法和除法具有相同的优先级,因此按照它们从左到右出现的顺序执行。 (D Stanley 打败了我!)。
标签: c# line division multiplication