java.sql.SQLException:'Infinity'不是有效的数值或近似数值

时间:2017-10-27 09:25:07

标签: java mysql

我正在使用一个返回float

的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

请建议在java方面处理它的正确方法来停止此异常,但也要获得正确的预期结果。

1 个答案:

答案 0 :(得分:0)

这里的问题是(由@ c0der和@apomene报道)resX为零。

JAVA浮点数据类型在除以零运算时不抛出任何算术异常,而是返回Infinity / NaN作为值。哪个MySQL不能存储为有效的数字类型,因此异常。

检查(resX> 0)解决了我的问题。