gpt4 book ai didi

java - double 值 0.0001 将在插入数据库时​​转换为 1.0E-4

转载 作者:行者123 更新时间:2023-11-30 11:16:10 24 4
gpt4 key购买 nike

我想将从网页接收到的 double 值传递给 sqlServer 数据库。值被包装在一个值对象中。

public class testVO{
Double value;

public Double getValue() {
return value;
}

public void setValue(Double value) {
this.value = value;
}

}

但是,我遇到的问题是当值小于0.0001时,会转为1.0E-4或其他科学计数法,导致数据库错误。

我找到的方法是用BigDecimal.valueOf(testVO.getValue())来解析。

有没有其他更好的办法解决?


已解决:这不是因为科学记数法的问题,数据库既可以读取数字也可以读取科学。问题是我在将它解析到数据库时使用的实用程序包会将所有值转换为字符串类型,希望不要浪费你的时间!

最佳答案

双重乘法可以得到意想不到的结果。检查下面的代码。

    double a = 0.3;
double b = 0.1 + 0.1 + 0.1;
if(a == b) {
System.out.println("Equal");
} else {
System.out.println("Not Equal");
}

结果将是不等于。正如 Alberto Bonsanto 所说,使用 String 保存在数据库中。我使用 BigDecimal 进行计算过程,并将其作为字符串和(对于 sqlserver 为数字)保存在数据库中。

关于java - double 值 0.0001 将在插入数据库时​​转换为 1.0E-4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25027467/

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