-5

大家好,我正在尝试使用 c# 将 4 除以 3。

到目前为止,我已经尝试了以下方法,在每种情况下,答案都是 1

float a = 4/3;// returns a = 1

我已经用 Decimal 试过了,结果还是一样。我不是 C 程序员有什么办法可以得到像这样的工程结果1.333

4

5 回答 5

2

您需要使用 'f' 后缀来告诉编译器文字是浮点数

float a = 4f / 3f;

否则它将假设一个积分,您将得到一个积分结果。

于 2013-10-24T14:47:50.140 回答
2

案例 1 给了我 1.333。情况 2 实际上是整数除法,因为43是整数,在行中定义。

float a = 4f / 3;将在 RHS 被评估为浮点时工作。

于 2013-10-24T14:48:36.227 回答
2

.NET 有 3 种类型的划分。从7.7.2 Division operator

  • 整数除法
  • 浮点除法
  • 小数除法

实际上,float a = 4 / 3;您正在进行整数除法并将其分配给浮点变量。如文档中所写;

除法将结果向零舍入,结果的绝对值是小于两个操作数的商的绝对值的最大可能整数。

如果你想做浮点除法,你可以做其中之一;

float a = 4f / 3f;
float a = 4 / 3f;
float a = 4f / 3;
于 2013-10-24T14:51:59.173 回答
1

由于两个数字都是整数,因此您正在使用整数除法

尝试使用一个或两个浮点数

float a = 4 / 3f;
于 2013-10-24T14:49:18.180 回答
0

尝试分别用a和替换值b4.03.0

于 2013-10-24T14:45:47.253 回答