在 Java 中将双精度转换为浮点型

2022-08-31 10:25:29

我遇到了与转换为.实际上,我在数据库中存储了一个浮点型,但是当我们在下面的代码中从数据库获取数据时,它是类型。我们得到的价值是形式。doublefloat23423424666767getInfoValueNumeric()double2.3423424666767E13

那么我们如何获得这样的格式数据?float23423424666767

2.3423424666767E13 to 23423424666767

public void setInfoValueNumeric(java.lang.Double value) {
    setValue(4, value);
}


@javax.persistence.Column(name = "InfoValueNumeric", precision = 53)
public java.lang.Double getInfoValueNumeric() {
    return (java.lang.Double) getValue(4);
}

答案 1

只需将你的替身扔到浮子上。

double d = getInfoValueNumeric();
float f = (float)d;

另请注意,基元类型不能存储无限的数字集:

float range: from 1.40129846432481707e-45 to 3.40282346638528860e+38
double range: from 1.7e–308 to 1.7e+308

答案 2

我建议您以 BigDecimal 类型检索存储在数据库中的值:

BigDecimal number = new BigDecimal("2.3423424666767E13");

int myInt = number.intValue();
double myDouble = number.doubleValue();

// your purpose
float myFloat = number.floatValue();

BigDecimal为您提供了许多功能。


推荐