还没有真正找到这个。虽然当我使用Caused by: org.hibernate.MappingException: Could not determine type for: model.Box, at table: Stuff, for columns: [org.hibernate.mapping.Column(box)]
初始化float
类型的变量时编译器似乎没有抱怨。
double
它工作正常,但我仍然很好奇是否可以这样做,和/或它是否安全?
(我在运行Windows的32位系统上)
答案 0 :(得分:2)
4.8浮点转换
1 浮点类型的prvalue可以转换为另一个浮点类型的prvalue。如果 源值可以在目标类型中准确表示,转换的结果就是精确的 表示。如果源值在两个相邻目标值之间,则为转换结果 是这些值中任何一个的实现定义选择。否则,行为未定义。
答案 1 :(得分:1)
创建的变量的大小不同。 " float = 4字节"和" double = 8字节"。因此,重要的是两种类型的值范围都不同。如果您将小值用作1.0,则不应影响工作流程。
答案 2 :(得分:1)
顾名思义,double的精度为float [1]的2倍。通常,double有15个十进制数字的精度,而float有7个。
以下是计算位数的方式:
double has 52 mantissa bits + 1 hidden bit: log(253)÷log(10) = 15.95 digits
float has 23 mantissa bits + 1 hidden bit: log(224)÷log(10) = 7.22 digits
也许你会失去精确度。