Java 返回十进制值时,如何修复此preparedStatement错误?
所以我基本上是以字符串的形式从数据库返回一个int值(不要问为什么)。现在,我必须将它与我已有的一些值进行比较,然而,这些值似乎存在差异 我的价值:204.4 数据库返回值:204.40 有没有办法去掉多余的零 我的阅读代码是:Java 返回十进制值时,如何修复此preparedStatement错误?,java,mysql,string,type-conversion,decimal,Java,Mysql,String,Type Conversion,Decimal,所以我基本上是以字符串的形式从数据库返回一个int值(不要问为什么)。现在,我必须将它与我已有的一些值进行比较,然而,这些值似乎存在差异 我的价值:204.4 数据库返回值:204.40 有没有办法去掉多余的零 我的阅读代码是: if(resultSet.getString(i) != null) { rowOfData.add(resultSet.getString(i).trim()); } else {
if(resultSet.getString(i) != null) {
rowOfData.add(resultSet.getString(i).trim());
} else {
rowOfData.add("");
}
可供比较的是:
for (int i = 0; i < inputRow.size(); i++) {
if(!tableRowData.contains(inputRow.get(i))) {
return false;
}
}
return true;
for(inti=0;i
把它当作一个合适的数字怎么样
String.valueOf(resultSet.getDouble(i))
如果该值以字符串形式返回,则尾随的“0”永远不会在数字上下文中被处理并“脱落”
当作为一个数字处理时,尾随的0是不重要的,并且“下降”:
当然,使用数字可能更合适,而不是将其[返回]转换为字符串。谢谢!我根本没想过。。。多么巧妙啊。(如果你要投否决票——这完全没关系——请解释原因,以便我可以学习、更正/注释我的答案,并防止传播错误信息!)好吧,你很清楚我不能真的做到这一点,对吗?否则我就不会有这个问题了!无论如何谢谢你的帮助。@gran_profaci当然你能做到。同样的原则也适用——即使RS返回getDouble将阻塞的内容。虽然我极力主张修复RS,但还有其他方法可以修复字符串并将其转换为双精度(或其他更合适的数字)。无论如何,希望你能解决你的问题!
204.40 == 204.4 // -> true
String.valueOf(204.40) // -> "204.4"