小编Sea*_*ler的帖子

是否有理由将整数乘以“ x”,然后除以相同的“ x”作为双精度?

前几天我正在运行一些代码,发现这行是我认为很奇怪的。

Math.Round(20 * (bytes / 1024.0 / 1024.0 / 1024.0), MidpointRounding.AwayFromZero) / 20.0);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它们要乘以int20,然后除以float20.0

我最初的怀疑是它与舍入或精度有关,但我在这里或Google上找不到答案(至少与我的搜索字词无关)。进行这种操作的目的是什么?

编辑

对于上下文,此行代码旨在将变量bytes转换为千兆字节

c# math precision rounding

5
推荐指数
1
解决办法
99
查看次数

返回抽象返回类型的子类?

我的项目的结构如下:

// Abstract class
public abstract class Job
{
    public abstract JobResult Run();
}
public abstract class JobResult { }

// Concrete implementer
public class Job1 : Job
{
    public override Job1Result Run() { }
}
public class Job1Result : JobResult { }
Run Code Online (Sandbox Code Playgroud)

每个具体作业都继承自 Job 并实现 Run 方法,该方法返回 JobResult 的具体类。

但是,当我这样做时,我收到编译器错误:

Job1.Run()':返回类型必须是 JobResult 以匹配重写的成员 Job.Run()

重写抽象方法时真的不能返回返回类型的继承对象吗?

c# inheritance

1
推荐指数
1
解决办法
1528
查看次数

标签 统计

c# ×2

inheritance ×1

math ×1

precision ×1

rounding ×1