decimal result = 100 * 200;
Run Code Online (Sandbox Code Playgroud)
VS
decimal result = Decimal.Multiply(100, 200);
Run Code Online (Sandbox Code Playgroud)
Kel*_*sey 22
使用Decimal.Multiply将强制乘法来获取类型的输入decimal而不是正在使用和转换的类型decimal.
Decimal.Multiply(decimal d1, decimal d2)并将强制执行和输出类型decimal.当作为*你可以这样做:
decimal result = yourDecimal * yourInt;
Run Code Online (Sandbox Code Playgroud)
这允许您在某些情况下混合和匹配类型,它将为您处理所有类型,但根据右侧的定义方式,类型不保证为十进制.
Chr*_*rle 11
该*操作符被重载并调用Multiply内部.这只是一个可读性的问题.
的*操作符被重载十进制类型和它是相同的Decimal.Multiply().但是,重载*运算符要求至少有一个参数是十进制的.否则,*调用其他一些运算符.在decimal result = 100 * 200int类型中首先相乘,然后转换为十进制.如果乘法结果大于Int32.MaxValue,则会出现溢出.
decimal d1 = 2147483647 * 2; // Overflow
decimal d2 = 2147483647m * 2; // OK
decimal d3 = Decimal.Multiply(2147483647, 2); // OK
Run Code Online (Sandbox Code Playgroud)