java - 在 Java 中将时间转换为 float ,反之亦然

标签 java eclipse floating-point converters bigdecimal

我需要在线性图表上显示一些时间值,我构建了一个代码片段来将时间值转换为 Java 中的浮点值。 我的代码不能很好地工作,因为我无法从浮点转换为时间...

这是我的结果:

From time to float:
7:43 --> 7.7166667

From float to time:
7.7166667 --> 7:60 (this is wrong...I would to see 7:43)

这是我的代码片段:

public class Test {

    public static void main(String[] args) 
    {
        String time = "7:43";
        float timeFloat = Float.parseFloat(time.replace(":","."));
        float resultTo100 = convertTo100(timeFloat);
        System.out.println(resultTo100);
        String resultTo60 = convertTo60(resultTo100);
        System.out.println(resultTo60);
    }

    public static float convertTo100(float input)
    {
        String input_string = Float.toString(input);
        BigDecimal inputBD = new BigDecimal(input_string);
        String hhStr = input_string.split("\\.")[0];
        BigDecimal output = new BigDecimal(Float.toString(Integer.parseInt(hhStr)));
        output = output.add((inputBD.subtract(output).divide(BigDecimal.valueOf(60), 10, BigDecimal.ROUND_HALF_EVEN)).multiply(BigDecimal.valueOf(100)));

        return Float.parseFloat(output.toString());
    }

    public static String convertTo60(float input)
    {
        String input_string = Float.toString(input);
        BigDecimal inputBD = new BigDecimal(input_string);
        String hhStr = input_string.split("\\.")[0];
        BigDecimal output = new BigDecimal(Float.toString(Integer.parseInt(hhStr)));
        output = output.add((inputBD.subtract(output).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_EVEN)).multiply(BigDecimal.valueOf(60)));

        return output.toString().replace(".",":");
    }
}

我做错了什么?

谢谢!

最佳答案

convertTo60 中切换除法和乘法运算的顺序。

关于java - 在 Java 中将时间转换为 float ,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28252387/

相关文章:

java - JFace FontRegistry 上的 NoClassDefFoundError

c - printf 函数如何处理 %f 规范?

java - 用于异步客户端到客户端消息传递的库

java - Mac OSX 10.6.7 上进程 'java' 的大量线程和内存使用

Java同步任务

java - 正则表达式匹配 url 目录路径而不匹配文件名

java - 在没有 Intent 的情况下在android中发送邮件

android - 在 Eclipse 中运行 APK 文件

ios - stringWithFormat float 的奇怪行为

javascript - 为什么 9007199254740995 四舍五入为 9007199254740996