当前位置: 首页 > 面试题库 >

如何在不舍入的情况下截断Java中的小数?

南门正业
2023-03-14
问题内容

我有一系列的Java小数,例如:

0.43678436287643872
0.4323424556455654
0.6575643254344554

我希望将所有小数点后5位保留下来。这怎么可能?


问题答案:

如果您想让事情变得简单快捷。;)

public static void main(String... args) {
    double[] values = {0.43678436287643872, 0.4323424556455654, 0.6575643254344554,
            -0.43678436287643872, -0.4323424556455654, -0.6575643254344554,
            -0.6575699999999999 };

    for (double v : values) 
        System.out.println(v + " => "+roundDown5(v));
}

public static double roundDown5(double d) {
    return ((long)(d * 1e5)) / 1e5;
    //Long typecast will remove the decimals
}

// Or this. Slightly slower, but faster than creating objects. ;)
public static double roundDown5(double d) {
    return Math.floor(d * 1e5) / 1e5;
}

版画

0.43678436287643874 => 0.43678
0.4323424556455654 => 0.43234
0.6575643254344554 => 0.65756
-0.43678436287643874 => -0.43678
-0.4323424556455654 => -0.43234
-0.6575643254344554 => -0.65756
-0.6575699999999999 => -0.65756


 类似资料:
  • 在我的代码中进行一系列计算后,我有了一个,其值为 然后,我需要将这个乘以,我希望计算出的值为

  • 问题内容: 我试图确定截断或删除SQL中多余的小数位而不舍入的最佳方法。例如: 这将自动舍入为,这在大多数情况下是很好的。但是,对于这个项目,我不需要。有没有一种简单的方法可以截断我不需要的小数?我知道我可以使用该函数并将其转换回十进制。还有其他方法吗? 问题答案:

  • 问题内容: 当我打印一个numpy数组时,我得到了一个截断的表示形式,但是我想要完整的数组。 有什么办法吗? 例子: 问题答案: 用途

  • 问题内容: 我试图将十进制数字截断到小数位。像这样: 所做的只是正确的事情,但是却舍入了价值。我不需要四舍五入的价值。希望这是可能的JavaScript。 问题答案: 更新 : 因此,无论如何,四舍五入的bug总是会困扰着您,无论您如何努力补偿它们。因此,应该通过精确地用十进制表示法来解决该问题。 旧的易出错的解决方案基于其他人的编译:

  • 我有一个非常基本的函数,它搜索的数组列表,并返回与传递给它的参数匹配的帐户。但是,一旦抛出CustomerAccountNotFoundException,我的for循环就会中断。 我通过在异常后打印的值来测试这一点,该值一直被重置为0。如何在抛出异常后继续循环?我希望每次帐户不匹配时都抛出它,当它匹配时返回帐户。我还尝试过但不起作用。

  • 我试图理解在stunnel上用于证书到期时替换的过程。因此,我在Windows上安装了一个stunnel,配置很简单: p1.pem文件的结构如下: 使用java客户端应用程序,我可以成功地打开到端口21234的SSL连接。 p1。pem证书是使用openssl创建的自签名证书。在p1之前。pem证书将过期。我们需要一段时间,服务器将接受两个证书(例如p1.pem和p2.pem)。 我尝试将两个文