在c#中除两个值时如何得到整数商?

在c#中除两个值时如何得到整数商?,c#,vb.net,C#,Vb.net,当我除以两个值时,我想得到整数商。每例 X=3 Y=2 Q=X/Y = 1.5 // I want get 1 from results X=7 Y=2 Q=X/Y=3.5 //I want get only 3 from results 尝试Math.Truncate。这应该可以了。Integer math将为您完成这项工作 int x = 3 / 2; // x will be 1 int y = 7 / 2; // y will be 3 int z = 7 % 2; // z wi

当我除以两个值时,我想得到整数商。每例

X=3
Y=2
Q=X/Y = 1.5 // I want get 1 from results


X=7
Y=2
Q=X/Y=3.5 //I want get only 3 from results

尝试
Math.Truncate
。这应该可以了。

Integer math将为您完成这项工作

int x = 3 / 2; // x will be 1
int y = 7 / 2; // y will be 3
int z = 7 % 2; // z will be 1
如果在等式中使用十进制或浮点值,则情况会有所不同。最简单的答案是将结果转换为int,但也可以使用静态数学函数

double a = 11d;
double b = 2d;
int c = (int)(a / b); // showing explicit cast, c will be 5

请尝试在VB.NET中使用整数除法运算符(\)。它只返回除法的整数部分。这是从最初的达特茅斯基础课程发展而来的,因此它存在于大多数形式的基础课程中。

尝试使用简单的数学

int X = 10 ;
int Y = 3 ; 
int Q = ( X - ( X % Y ) ) / Y  ; // ( it will give you the correct answer ) 

它的工作原理是先从第一个数字中减去余数,这样我们就不会得到余数了

在.NET中使用
Math.DivRem()
方法获取商和余数还有另一种优雅的方法,该方法接受2个输入参数,1个输出参数并返回整数

对于股息:7和除数:2

仅获取商(q)

求商(q)和余数(r)


Math.DivRem()
对32位和64位有符号整数有2个重载。

是否需要处理负数,如果需要,负数应该朝向零还是远离零?(-2.3->-2或-3)+1提供其他人忽略的特定于VB的答案。
using System;
int q = Math.DivRem(7, 2, _);
//requires C# >= 7.0 to use Discards( _ )
int q = Math.DivRem(7, 2, out int r);