Java 如何使用符号格式化土耳其里拉?
我试着用区域设置来做,但它只显示为文本,符号没有显示出来。我正在使用Java14SDK 我试过的代码:Java 如何使用符号格式化土耳其里拉?,java,formatting,locale,Java,Formatting,Locale,我试着用区域设置来做,但它只显示为文本,符号没有显示出来。我正在使用Java14SDK 我试过的代码: Locale tr = new Locale("tr", "TR"); BigDecimal points = new BigDecimal(175678.64); System.out.println(NumberFormat.getCurrencyInstance(tr).format(points)); 输出: 175.678,64 TL 我想: ₺175.678,64
Locale tr = new Locale("tr", "TR");
BigDecimal points = new BigDecimal(175678.64);
System.out.println(NumberFormat.getCurrencyInstance(tr).format(points));
输出:
175.678,64 TL
我想:
₺175.678,64
考虑使用
java.util.Currency
的Currency
类。
Currency
类有两个方法getSymbol()
和getSymbol(Locale)
。在您的情况下,应该将第二种方法与locale
参数一起使用。这将返回表示土耳其里拉货币符号的字符串
您可以像这样初始化货币
对象:
Currency=Currency.getInstance(tr);
及
currency.getSymbol(tr);
将以字符串的形式返回货币符号
此外,您应该知道,在Java中将土耳其里拉符号表示为字符的unidoce是\u20BA
请在您的国家/地区尝试此更改“Locale.CANADA”
NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CANADA);
String currency = format.format(number);
System.out.println("Currency in Canada : " + currency);
没问题
为了便于调试,我将您的代码分为多行
当我访问站点时,我会得到您想要的输出
顺便说一下,您应该将输入的数字作为文本传递(添加引号)。否则,您将无法达到使用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 ) ;
}
}
运行时:
₺175.678,64
我也尝试过(在我的语言环境中,使用Java14(win)),但(除此之外,它无法打印“₺" <代码>\u20BA
)我得到了?175.678,64
(因此另一种“默认格式”)…修改货币符号()没有效果…我还断言它等于(修改前为\u20BA
)。该代码生成₺175.678,64
对于我来说,在en-US语言环境中运行时,System.out.println(locale.getDefault());
显示什么?顺便说一下,您应该将输入的数字作为文本传递(添加引号)。否则,您将无法使用BigDecimal
@VGR。我不想使用默认值,因为我们不知道每个人的计算机的默认值是多少。这是有道理的,但我想知道您的默认区域设置是否有问题。我的代码与您的代码相同,我的国家没有区域设置代码。我如果认为库区域设置只有这个符号,那么最好检查Java中是否有另一个货币符号库是的,你是对的。这是我的错。我从其他地方收到了一条错误消息。谢谢你的帮助。:D