我面临着一个与将double
转换为float
相关的问题。实际上,我在数据库中存储了一个浮点类型23423424666767
,但是当我们在下面的代码getInfoValueNumeric()
中从数据库中获取数据时,它是double
类型。我们得到的值是2.3423424666767E13
形式的。
那么,我们如何获得像23423424666767
这样的float
格式数据呢
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);
}
发布于 2015-09-29 15:13:24
只需将你的替身转换为浮动即可。
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
发布于 2015-09-29 15:14:53
我建议您检索以BigDecimal类型存储在数据库中的值:
BigDecimal number = new BigDecimal("2.3423424666767E13");
int myInt = number.intValue();
double myDouble = number.doubleValue();
// your purpose
float myFloat = number.floatValue();
BigDecimal为您提供了许多功能。
发布于 2017-11-23 10:01:31
将Double
转换为Float
public static Float convertToFloat(Double doubleValue) {
return doubleValue == null ? null : doubleValue.floatValue();
}
将double
转换为Float
public static Float convertToFloat(double doubleValue) {
return (float) doubleValue;
}
https://stackoverflow.com/questions/32837783
复制相似问题