Search code examples
javaformattinglocale

How can i format turkish lira with symbol?


I tried to do it with the locale, but it only appears as text and the symbol doesn't come out. I am using JAVA 14 SDK.

Code I tried:

  Locale tr = new Locale("tr", "TR");
  BigDecimal points = new BigDecimal(175678.64);
  System.out.println(NumberFormat.getCurrencyInstance(tr).format(points));

Output:

175.678,64 TL

I want:

₺175.678,64

Solution

  • No problem

    I broke out your code to multiple lines for easier debugging.

    When I run it in the IdeOne.com site, I get your desired output.

    By the way, you should pass your input number as text (add quote marks). Otherwise you are defeating the purpose of using BigDecimal.

    /* package whatever; // don't place package name! */
    
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    import java.math.* ;
    import java.text.* ;
    
    /* Name of the class has to be "Main" only if the class is public. */
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            // your code goes here
    
    Locale locale = new Locale("tr", "TR");
      BigDecimal points = new BigDecimal( "175678.64" ) ;
    
    
    NumberFormat f = NumberFormat.getCurrencyInstance( locale ) ;
    String output = f.format( points ) ;
    
    System.out.println( output ) ;
    
    
        }
    }
    

    When run:

    ₺175.678,64