2017-01-31 7 views
1

У меня есть запрос HQL как следующее:Как бросить дважды в строку в спящем режиме

select sellingPrice, cast(sellingPrice as string) from Inventory

Но после литья, это дает неожиданные результаты, как следующее:

6,31 6,3099999999999996

6.37 6.3700000000000001

6.38 6.379999999 9999999

6,38 6,3799999999999999

Почему этот запрос литья 6.31 AS 6.30999999999996.

Просьба сообщить.

+0

Вы можете использовать BigDecimal вместо двойного – StanislavL

ответ

0

Если вы должны вернуть строку для второго arguemnt затем вокруг значения перед броском следующим образом:

select sellingPrice, 
     cast(((abs(sellingPrice) * 100 + 0.5)/100.0 * sign(sellingPrice)) as string) 
from Inventoryfloor 

Прочитайте это для основного объяснения ->https://forum.hibernate.org/viewtopic.php?p=2474138

+0

ПОСЛЕ ДОБАВЛЕНИЯ ОДНОЙ КРЕПЛЕНИЯ ПОСЛЕ ТОГО, КАК КЛЮЧЕВОЙ ЭТО РАБОТАЕТ ДЛЯ МЕНЯ литье (((abs (sellPrice) * 100 + 0,5) /100.0 * знак (sellPrice)) как строка) – Pavankant

+0

Право я пропустил это –

 Смежные вопросы

  • Нет связанных вопросов^_^