java 将 GB、Mb、KB 和字节精确转换为 double

标签 java numbers

我正在下载各种大小的文件,并且喜欢
显示有关文件大小的用户友好输出。

我已经尝试过这个:

double line= (totalBytes/(1024*1024));
DecimalFormat dec = new DecimalFormat("0.00");
String result = dec.format(line);
result = result.concat("MB");

仅当大小约为 1 MB 时才有效。如果大小是 1200000 字节,我得到“1.2MB”。
但是如果假设文件大小是 46 字节,如何使其动态。

更新 如何显示 46 字节的大小,如 0.000046MB 或显示 500KB,如 0.5MB。
这必须即时完成。我希望用户友好的输出始终显示 X.XMB
无论有多少字节。

最佳答案

最简单的解决方案是检查数字是否大于/小于某个因子并相应地进行除法。

所以

if (totalBytes < 1024){

 //bytes
}else if (totalBytes < 1024*1024){
 //kilobytes

} //etc

关于java 将 GB、Mb、KB 和字节精确转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8107377/

相关文章:

java - 像 IntelliJ 中的 Eclipse 这样的 Alt-left/right arrow key 相当于什么?

java - 使用 Microsoft 的 JDBC 驱动程序创建连接比使用 jTDS 快 3 倍

algorithm - 表示无限长度数字的最佳方法?

javascript - 不带数组的数字的数字之和

java - 我想用java写一个prim的算法

java - 如何设计类及其方法

JavaScript - 无法正确添加 2 个数字

unicode - 是否有用于一元数字的 Unicode 符号(|、||、...、|̶|̶|̶|̶)?

mysql - 从 Mysql/Excel 将数据加载到 SPSS 时出现问题

java - 如何使用 Java 获取存储在 ArrayList 中的对象的属性