尝试将此SQL查询的正确输出存储到Java applcation中的 double 变量时,我遇到以下问题。
所以我有 SQL 查询:
SELECT sum(anagraficaEdificio.imp_tot_ind - anagraficaEdificio.imp_cof) FROM TID003_ANAGEDIFICIO anagraficaEdificio
INNER JOIN TID002_CANDIDATURA candidatura ON (candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR AND candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN)
INNER JOIN TID001_ANAGPARTECIPA anagPartecipa ON(anagPartecipa.PRG_PAR = candidatura.PRG_PAR)
INNER JOIN anagrafiche.TPG1029_PROVNUOIST provNuovIst ON (provNuovIst.COD_PRV_NIS = anagPartecipa.COD_PRV_NIS)
WHERE FLG_GRA=1
直接在我的数据库上执行此查询(使用其客户端)我获得了正确的数字结果: 36481888,47
好的,所以我已经将它实现到Java应用程序中(使用SpringDataJpa,但我认为这并不重要,因为它是以 SQL本机查询执行的):
@Query(value = "SELECT sum(anagraficaEdificio.imp_tot_ind - anagraficaEdificio.imp_cof) FROM TID003_ANAGEDIFICIO anagraficaEdificio "
+ "INNER JOIN TID002_CANDIDATURA candidatura ON (candidatura.PRG_PAR = anagraficaEdificio.PRG_PAR AND candidatura.PRG_CAN = anagraficaEdificio.PRG_CAN) "
+ "INNER JOIN TID001_ANAGPARTECIPA anagPartecipa ON(anagPartecipa.PRG_PAR = candidatura.PRG_PAR) "
+ "INNER JOIN anagrafiche.TPG1029_PROVNUOIST provNuovIst ON (provNuovIst.COD_PRV_NIS = anagPartecipa.COD_PRV_NIS) "
+ "WHERE FLG_GRA=1", nativeQuery = true)
double getImportoFinanziabileNazionale();
执行原始查询。
问题在于,当我通过以下方式调用此方法时:
double risultato = tid003AnagedificioRepository.getImportoFinanziabileMiurNazionale();
存储在 risultato 变量中的值不是 36481888,47 (正确的值),但我获得此值 3.648188847E7 。< / p>
为什么它里面包含一个E?与exponensial表示法有关的东西或类似的东西?如何获取我的查询返回到我的Java应用程序的oringial 36481888,47 值?是否与使用 double ?
有关我错过了什么?我该如何解决这个问题?
答案 0 :(得分:1)
它有一个E,因为它的格式与您期望的格式不同。它的编号相同。 36481888,47(您的电话号码)与3.648188847E7的号码相同。在这种情况下,E代表&#34;指数&#34;或幂为10。您可以按照自己喜欢的方式打印它。您没有发布Java代码:查找printf或其他格式化功能,以便了解如何根据您的喜好打印它。 http://web.cerritos.edu/jwilson/SitePages/java_language_resources/Java_printf_method_quick_reference.pdf