gpt4 book ai didi

java - 如何将 Double 中的秒数转换为两个 int 秒数和毫秒数?

转载 作者:行者123 更新时间:2023-12-05 01:47:29 25 4
gpt4 key购买 nike

我有一个代表秒的任意 Double 变量,我希望将其转换为两个整数,以便我可以添加到 Calendar 对象,但无法弄清楚如何从根本上将 double 值拆分为十进制值和整数值。如果存在向日历添加双秒变量的更好实现,我愿意接受其他实现。

Double someDouble = 2.5;
int seconds = 0, milli = 0;

//Get seconds to = 2, milli to = 500 from someDouble (pad with zeroes to get three places)

Calendar someCalendar = Calendar.getInstance();
someCalendar.add(Calendar.SECOND, seconds);
someCalendar.add(Calendar.MILLISECOND, milli);

最佳答案

你不需要为此使用日历,有一种更快的方法:

int seconds = (int)someDouble.doubleValue();
int milli = (int)((someDouble.doubleValue() - seconds) * 1000);

这里发生的事情是:

  1. 您只需将 double 转换为 (int) 以获得整数部分,即秒数
  2. 从 double 中减去秒,得到 0.5,然后每 1000 乘以,因为它们是毫秒,然后再次将其转换为 (int)

如果您使用的不是 Double,而是 double,则 doubleValue() 调用也可以省略:

double dtime = 2.5d; // or someDouble.doubleValue() if you need to convert
int seconds = (int)dtime;
int milli = (int)((dtime - seconds) * 1000);

关于java - 如何将 Double 中的秒数转换为两个 int 秒数和毫秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25734358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com