java.sql.SQLException:';无穷大';不是有效的数值或近似数值
我正在使用一个返回浮点值的java函数java.sql.SQLException:';无穷大';不是有效的数值或近似数值,java,mysql,Java,Mysql,我正在使用一个返回浮点值的java函数 private float getEventScaledX(float eventX, float resX) { return (eventX * frameWidth) / resX; } 当将其存储在mysql db下时,它会抛出异常 Caused by: java.sql.SQLException: 'Infinity' is not a valid numeric or approximate numeric value 请建议一种正
private float getEventScaledX(float eventX, float resX) {
return (eventX * frameWidth) / resX;
}
当将其存储在mysql db下时,它会抛出异常
Caused by: java.sql.SQLException: 'Infinity' is not a valid numeric or approximate numeric value
请建议一种正确的方法在java端处理它,以停止此异常,同时获得正确的预期结果。这里的问题是(正如@c0der和@apomene所报告的)resX为零
JAVA float数据类型在执行零除操作时不会引发任何算术异常,而是返回无穷大/NaN作为值。MySQL无法将其存储为有效的数字类型,因此出现异常
检查(resX>0)修复了我的问题。你传递了什么值?我猜resX接近于零。帧宽:400,事件x=320。5459899902344@apomene你的答案似乎是对的。欢迎来到SO。请将所有相关信息添加到您的问题或最佳帖子中
frameWidth:400 eventX=320.5459899902344
以及resX
的值(我猜它是0,但我不应该猜测)和sql
语句都应该在问题中。