从Long转换为Float数

时间:2011-11-06 16:01:03

标签: c# types floating-point long-integer

在我的课程中,我有一个属性 fileSize 类型为

我不想更改为float / double,因为我使用数据库,现在我不能只编辑 数据类型(迟到)

文件大小通常在 kB (原因)。 但是,一旦我想在 MB (即 fileSize / 1024 )中显示它 - >我得到 0 ,因为类型不是 float / double ..

如何解决问题,以便在不更改 fileSize 的数据类型的情况下获得0.54MB的b.E

5 个答案:

答案 0 :(得分:6)

fileSize / 1024执行整数除法,因为两个操作数都是整数。如果你想进行真正的除法,你可以这样做(至少有一个操作数必须是实数):

double result = fileSize / 1024.0;

或:

double result = fileSize / 1024d;

现在结果将包含您要在UI上打印的正确值。

答案 1 :(得分:1)

只做

double sizeMiB = fileSize / 1024.0

或者

string toDisplay = string.Format("Size is {0}MiB", fileSize/1024.0);

答案 2 :(得分:1)

例如fileSize / 1024.0fileSize / 1024dBoth make the compiler treat this as a division based on double

答案 3 :(得分:1)

除以1024.0,编译器会将其转换为double

答案 4 :(得分:1)

你可以做到

  double a = fileSize / 1024d;