[英]Divide a whole number by a decimal number
我正在尝试将整数除以十进制/浮点数/双精度数。 我能够将整数除以使用: int Num1 = 300 / 2;
,但是当我尝试将“ 2”设为小数时,它将无法正常工作。 我见过有人提到这样做int Num1 = 300 / ((float)1.25);
。 老实说,这对我没有任何意义...我也尝试过int Num1 = Decimal.Divide(300, 1.25);
没有运气..
问题是您正在尝试将结果保存到int
。 尝试这个:
float result = 300 / (float)2;
float result = 300 / (float)1.25;
或者更简洁( f
是向编译器发出的信号,它是一个float
常量):
float result = 300 / 2f;
float result = 300 / 1.25f;
请注意, float
与decimal
有很大不同,两者都有其优点。 要使用小数:
decimal result = decimal.Divide(300, 1.25);
或这( m
是向编译器发出的信号,它是一个decimal
常数):
decimal result = decimal.Divide(300m, 1.25m);
简单的说:
您正在尝试将结果存储为整数。 而是使用double作为变量的类型来存储结果:
double Num1 = 300 / 2;
double Num1 = 300 / 1.25;
一个int
只能存储整数。 用整数除以小数时,输出将是小数(即使由于浮点存储方式而使用4.00
)。
这不会编译
int Num1 = 300 / ((float)1.25);
即使您正在强制转换显式float(否则1.25将是double
),您仍试图将其存储在int
类型的变量中。 编译器不会自动执行此操作,因为不存在隐式转换 ,编译器无法将float
为int
。 因此,您需要告诉编译器您不介意丢失精度并将其强制转换为int
int Num1 = (int)(300 / ((float)1.25));
或者,您可以将Num1
的类型更改为浮点数。
float Num1 = 300 / ((float)1.25);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.