C#: 如何将十进制数和浮点数相乘?

10

我想执行以下操作:

十进制数 = 十进制数? * 浮点数 / 100

如何以最有效的方式执行此操作?


4
需要更多信息才能帮助您。您需要什么数据类型的结果(双精度、单精度、整型、小数...)? - Randy Minder
4
不是对你问题的回答,只是想知道你最初是否选择了数据类型。你是否意识到它们之间的区别?如果不清楚,请参阅此文章:http://gregs-blog.com/2007/12/10/dot-net-decimal-type-vs-float-type/ 如果需要更可靠的精度,则了解差异非常重要。 - David
“Decimal”是什么意思?你是真的在使用可空类型吗? - Cédric Guillemette
2
David是正确的;这个操作很奇怪。你为什么要试图在一个表达式中混合十进制浮点数、二进制浮点数和整数运算?看起来你正在计算一定数量的货币百分比;为什么百分比不已经是十进制形式了呢? - Eric Lippert
1个回答

23

你想要的结果是一个 float 类型吗?

var result = ((float)d) * f / 100;

或者作为十进制数

var result = d * ((decimal)f) / 100;

我确实质疑混合使用 decimalfloat 类型。一些上下文会有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接