Java 基于规则的数字格式-印度货币

Java 基于规则的数字格式-印度货币,java,groovy,icu,Java,Groovy,Icu,使用上述类 def format = new RuleBasedNumberFormat(new Locale("en", "in"), RuleBasedNumberFormat.SPELLOUT) format.format(value) 为了₹ 9,00000值,显示90万。但是我们必须展示九百万。如何做到这一点?我想你不会明白的。根据,这是他们的命名法。。。千千万万 1,000,000: << million[ >>]; 1,000,000,000: <

使用上述类

def format = new RuleBasedNumberFormat(new Locale("en", "in"), RuleBasedNumberFormat.SPELLOUT)
format.format(value)

为了₹ 9,00000值,显示
90万
。但是我们必须展示九百万。如何做到这一点?

我想你不会明白的。根据,这是他们的命名法。。。千千万万

 1,000,000: << million[ >>];
 1,000,000,000: << billion[ >>];
 1,000,000,000,000: << trillion[ >>];
 1,000,000,000,000,000: OUT OF RANGE!;
1000000:>];
1,000,000,000: >];
1,000,000,000,000: >];
100000000000000:超出范围!;
IMHO,您需要编写自定义逻辑。
例如,将所有“千禧”替换为10万

感谢您的回复。在哪里可以更改?format.format(值)将为您提供字符串输出。您可以对字符串执行替换操作。@Hirak,该术语只是一个示例。不同的rbnf数据集可以有不同的术语。有印地语rbnf数据,但名称是印地语的,这意味着
new RuleBasedNumberFormat(new Locale(“hi”),RuleBasedNumberFormat.SPELLOUT)
显示一个字符串,看起来像
nine lakhs
,但用印地语。据我所知,Icu4j没有现成的rbnf数据,其中包含用英语拼写的lakh cardinal。