Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法获得准确的文件大小_C#_.net_Filesize_Fileinfo - Fatal编程技术网

C# Can';无法获得准确的文件大小

C# Can';无法获得准确的文件大小,c#,.net,filesize,fileinfo,C#,.net,Filesize,Fileinfo,以下是我尝试获取文件大小(MB)的方法: FileInfo file_size = new FileInfo(list[i]); double friendly_file_size = (file_size.Length / 1048576); MessageBox.Show(friendly_file_size.ToString()); 问题是它在逗号后没有显示任何内容。。当文件大小为3.15时,显示为3。当它为0.5时,表示0,我做错了什么?这是一个整数除法。将至少

以下是我尝试获取文件大小(MB)的方法:

    FileInfo file_size = new FileInfo(list[i]);
    double friendly_file_size = (file_size.Length / 1048576);
    MessageBox.Show(friendly_file_size.ToString());

问题是它在逗号后没有显示任何内容。。当文件大小为3.15时,显示为3。当它为0.5时,表示0,我做错了什么?

这是一个整数除法。将至少一个操作数设为浮点数,将其转换为浮点除法:

 double friendly_file_size = file_size.Length / 1048576.0;
或:


这是一个整数除法。将至少一个操作数设为浮点数,将其转换为浮点除法:

 double friendly_file_size = file_size.Length / 1048576.0;
或:


因为你的分母是一个整数,我怀疑是强制整数除法。解决办法很简单。只需将分母转换为双精度。像这样:

double friendly_file_size = file_size.Length / (double)1048576;

因为你的分母是一个整数,我怀疑是强制整数除法。解决办法很简单。只需将分母转换为双精度。像这样:

double friendly_file_size = file_size.Length / (double)1048576;

或者,您可以使用数字后缀(即1048576d)。如果你想使用十进制类型,它是最有用的,在这种情况下,这是不必要的。非常感谢你向我解释这一点。@Thorarin:我不知道是十进制的,我是在印象中。@Brad:
d
double
m
十进制的(钱)
——然而,在一般的英语用法中,
双精度的
值代表十进制数,所以索拉林并没有完全错。@Gabe:Freudian slip在我这方面引用了页面,但在注释中仍然颠倒了它们(必须是睡觉时间)。或者,你可以使用数字后缀(即1048576d)。如果你想使用十进制类型,它是最有用的,在这种情况下,这是不必要的。非常感谢你向我解释这一点。@Thorarin:我不知道是十进制的,我是在印象中。@Brad:
d
double
m
十进制的(钱)
——然而,在一般的英语用法中,
双精度的
值代表十进制数,所以索拉林并没有完全错。@Gabe:Freudian slip在我这方面,引用了页面,但在评论中仍然颠倒了它们(必须是睡觉时间)。