在c#中将long转换为十进制

Sre*_*ree 4 c# asp.net decimal type-conversion

我有一个值存储在一个类型为"long"的变量中.

long fileSizeInBytes = FileUploadControl.FileContent.Length;
Decimal fileSizeInMB = Convert.ToDecimal(fileSizeInBytes / (1024 * 1024));
Run Code Online (Sandbox Code Playgroud)

我想将fileSizeInBytes转换为舍入到小数点后2位的十进制数字(如:1.74,2.45,3.51)但是我无法获得所需的结果.我只得到单个数字,结果没有小数位.有人可以帮助我吗?

谢谢你的期待

rob*_*rit 14

Decimal fileSizeInMB = Convert.ToDecimal(fileSize) / (1024.0m * 1024.0m);
Run Code Online (Sandbox Code Playgroud)

你正在做的是将文件大小除以整数,这导致整数,而不是小数.留下的任何剩余部分将被砍掉.

  • @ user653622你可以使用Math.Round(fileSizeInMB,2)是一种方法 (3认同)