Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 操作顺序简单脑筋急转弯_C#_Operator Precedence - Fatal编程技术网

C# 操作顺序简单脑筋急转弯

C# 操作顺序简单脑筋急转弯,c#,operator-precedence,C#,Operator Precedence,我有一段简单的代码,它没有实现我所期望的。这个代码有什么问题 int value1 = (int).5*100; 这很容易,但通过我的一个良好的时刻循环。当然,答案并不重要,而且已经为人所知。但是,我认为这可能是有趣的人思考 首先,它将.5转换为int,结果是0,然后再乘以100,结果是(0*100)0 如果您希望它是50,那么您需要使用括号(因此乘法先进行,然后键入cast): 插入更多的括号总比插入更少的括号好,这样做不需要花费任何费用,而且可以增加可读性和理解力 MSDN库:.“什么是错

我有一段简单的代码,它没有实现我所期望的。这个代码有什么问题

int value1 = (int).5*100;
这很容易,但通过我的一个良好的时刻循环。当然,答案并不重要,而且已经为人所知。但是,我认为这可能是有趣的人思考


首先,它将
.5
转换为
int
,结果是
0
,然后再乘以
100
,结果是(0*100)
0

如果您希望它是
50
,那么您需要使用括号(因此乘法先进行,然后键入cast):

插入更多的括号总比插入更少的括号好,这样做不需要花费任何费用,而且可以增加可读性和理解力

MSDN库:.

“什么是错的”:括号的使用不足,迫使我记忆和背诵愚蠢的优先规则(旨在满足编译器的要求,而不是人类的眼睛),这使得它很难编写,甚至更难维护

如果意思有一点疑问,就加上括号。即使他们不需要。那么这就不是问题了。你不需要记住任何东西

如果代码编写为:

((int)0.5)*100
或:


然后我怀疑这个问题是否有必要:)

这与强制转换的优先级有关,强制转换具有更高的优先级,因此我在乘法运算之前执行,您必须使用括号来更改优先级,请尝试以下方法:

int value1 = (int)(.5 * 100);

我有一段简单的代码,它没有实现我所期望的
。好吧,如果你想让它煮咖啡,你就必须插入咖啡冲泡子程序,否则它永远不会工作。@KooKiz别忘了语法糖!除了咖啡:这不是垃圾邮件吗?+1表示“旨在满足编译器,而不是人类的眼睛”。我从来不想在阅读别人的代码时考虑优先规则。曾经
(int)(0.5*100)
int value1 = (int)(.5 * 100);