我想以尽可能高的精度将毫秒转换为秒(例如 1500 毫秒到 1.5 秒,或 500 毫秒到 0.5 秒)。
Double.parseDouble(500 / 1000 + "." + 500 % 1000);
不是最好的方法:我正在寻找一种从除法运算中获取余数的方法,因此我可以简单地将余数相加。
我想以尽可能高的精度将毫秒转换为秒(例如 1500 毫秒到 1.5 秒,或 500 毫秒到 0.5 秒)。
Double.parseDouble(500 / 1000 + "." + 500 % 1000);
不是最好的方法:我正在寻找一种从除法运算中获取余数的方法,因此我可以简单地将余数相加。
当然你只需要:
double seconds = milliseconds / 1000.0;
无需单独手动执行这两个部分 - 您只需要浮点运算,使用1000.0
(作为double
文字)强制。(我假设您的milliseconds
值是某种形式的整数。)
请注意,与往常一样double
,您可能无法准确表示结果。BigDecimal
如果您想将 100ms精确地表示为 0.1 秒,请考虑使用。(鉴于它是一个物理量,而 100 毫秒一开始并不准确,adouble
可能是合适的,但是......)
你为什么不简单地尝试
System.out.println(1500/1000.0);
System.out.println(500/1000.0);
我也遇到了这个问题,不知何故我的代码没有提供确切的值,而是将秒数四舍五入到 0.0(如果毫秒小于 1 秒)。帮助我的是将小数添加到除法值中。
double time_seconds = time_milliseconds / 1000.0; // add the decimal
System.out.println(time_milliseconds); // Now this should give you the right value.