首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么使用Decimal.Multiply而不是操作符乘法?

为什么使用Decimal.Multiply而不是操作符乘法?
EN

Stack Overflow用户
提问于 2011-03-22 04:53:09
回答 5查看 39.6K关注 0票数 28
代码语言:javascript
复制
decimal result = 100 * 200;

vs

代码语言:javascript
复制
decimal result = Decimal.Multiply(100, 200);
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-22 05:00:34

使用Decimal.Multiply将强制乘法接受decimal类型的输入,而不是正在使用并转换为decimal的任何类型。

Decimal.Multiply(decimal d1, decimal d2)并将强制执行decimal类型的and输出。作为*,你可以这样做:

代码语言:javascript
复制
decimal result = yourDecimal * yourInt; 

这允许您在某些情况下混合和匹配类型,它将为您处理所有类型,但不能保证类型是十进制的,这取决于右侧的定义。

票数 25
EN

Stack Overflow用户

发布于 2011-03-22 04:56:29

*操作符是重载的,它在内部调用Multiply。这实际上只是一个可读性的问题。

票数 11
EN

Stack Overflow用户

发布于 2011-03-22 05:16:49

对于decimal类型,*运算符是重载的,它与Decimal.Multiply()相同。但是,重载的*运算符要求至少有一个参数是十进制的。否则,将调用其他某个*运算符。在decimal result = 100 * 200中,int类型首先相乘,然后转换为decimal。如果乘法结果大于Int32.MaxValue,则会出现溢出。

代码语言:javascript
复制
decimal d1 = 2147483647 * 2; // Overflow
decimal d2 = 2147483647m * 2; // OK
decimal d3 = Decimal.Multiply(2147483647, 2); // OK
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5383560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档