大家好,我正在尝试使用 c# 将 4 除以 3。
到目前为止,我已经尝试了以下方法,在每种情况下,答案都是 1
float a = 4/3;// returns a = 1
我已经用 Decimal 试过了,结果还是一样。我不是 C 程序员有什么办法可以得到像这样的工程结果1.333
大家好,我正在尝试使用 c# 将 4 除以 3。
到目前为止,我已经尝试了以下方法,在每种情况下,答案都是 1
float a = 4/3;// returns a = 1
我已经用 Decimal 试过了,结果还是一样。我不是 C 程序员有什么办法可以得到像这样的工程结果1.333
您需要使用 'f' 后缀来告诉编译器文字是浮点数
float a = 4f / 3f;
否则它将假设一个积分,您将得到一个积分结果。
案例 1 给了我 1.333。情况 2 实际上是整数除法,因为4
和3
是整数,在行中定义。
float a = 4f / 3;
将在 RHS 被评估为浮点时工作。
.NET 有 3 种类型的划分。从7.7.2 Division operator
实际上,float a = 4 / 3;
您正在进行整数除法并将其分配给浮点变量。如文档中所写;
除法将结果向零舍入,结果的绝对值是小于两个操作数的商的绝对值的最大可能整数。
如果你想做浮点除法,你可以做其中之一;
float a = 4f / 3f;
float a = 4 / 3f;
float a = 4f / 3;
由于两个数字都是整数,因此您正在使用整数除法
尝试使用一个或两个浮点数
float a = 4 / 3f;
尝试分别用a
和替换值b
4.0
3.0