将长数值转换为浮点数

本文关键字:浮点数 转换 | 更新日期: 2023-09-27 18:13:35

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

我不想更改为浮点/双精度,因为我使用数据库,现在我不能只编辑的数据类型

文件大小通常为kB(long的原因(。。但是,一旦我想在MB中显示它(也就是说,fileSize/1024(->,并且我得到了0,这是因为类型不是float/double。。

如何在不更改fileSize的DataType的情况下解决问题,从而获得b.E 0.54MB?

将长数值转换为浮点数

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

double result = fileSize / 1024.0;

或:

double result = fileSize / 1024d;

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

只需进行

double sizeMiB = fileSize / 1024.0

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

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

您可以进行

  double a = fileSize / 1024d; 

例如使用fileSize / 1024.0fileSize / 1024d。两者都使得编译器将其视为基于double的除法。