Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Przechowywanie końcowych zer w bazie danych za pomocą JPA i Oracle

Nie możesz tego rozwiązać i sugeruję, że to nie problem. Właśnie tak Oracle przechowuje NUMBER wartości:z najmniejszą potrzebną precyzją. Jeśli podałeś cenę jako 4.00 byłby przechowywany jako 4 .

Zauważ, że Java nie będzie domyślnie podawać wartości do dwóch miejsc po przecinku. Musisz określić liczbę miejsc dziesiętnych.

A jeśli to możliwe, użyłbym BigDecimal zamiast float Za cenę. float typ nie jest precyzyjny. Alternatywą jest użycie jednego z typów liczb całkowitych (int lub long ) i samodzielnie zarządzaj miejscami dziesiętnymi.

Aby sformatować cenę do wyświetlenia w kodzie Java, użyj String.format("%.2f", price) .

Aby sformatować cenę w zapytaniu Oracle, użyj TO_CHAR :

SELECT TO_CHAR(price, '999999990.00'), etc.

Wybierz najlepszą dla siebie liczbę symboli zastępczych i zauważ, że Oracle umieści dodatkową spację na początku wyniku. Jest przeznaczony do przechowywania znaku minus, jeśli liczba jest ujemna, ale dla zera/dodatnia jest to spacja. Aby pozbyć się przestrzeni, użyj FM modyfikator w TO_CHAR :

SELECT TO_CHAR(price, 'FM999999990.00'), etc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL Jak uzyskać X dni temu z Daty jako Daty?

  2. Błąd(5,3):PLS-00103:Napotkano symbol BEGIN podczas oczekiwania na jedno z następujących:język

  3. Nie mogę korzystać z LITAGG

  4. Entity Framework połącz się z Oracle:ODP dla .NET nie obsługuje czasu

  5. Korzystanie z procedury pl-sql lub kursora w celu wybrania 3 najwyższych rang