You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何将数字转换为印度卢比格式?

将数字转换为印度卢比格式

你需要的是符合印度卢比计数系统的数字格式(从右往左先分3位,之后每2位为一组),同时保留两位小数。以下是几种常用编程语言的实现方案:

Python 实现

方法1:使用 locale 模块

通过设置印度地区本地化环境直接格式化:

import locale

# 配置印度英语本地化规则
locale.setlocale(locale.LC_NUMERIC, 'en_IN.UTF-8')

# 格式化数字并保留两位小数
num = 222555555.0
formatted_num = locale.format_string("%.2f", num, grouping=True)
print(formatted_num)  # 输出: 22,25,55,555.00

方法2:自定义格式化函数

无法设置locale时,可手动拆分处理整数和小数部分:

def format_inr(num):
    # 统一保留两位小数,拆分整数与小数部分
    num_str = "{0:.2f}".format(num)
    integer_part, decimal_part = num_str.split('.')
    
    # 反转整数部分,按规则分组:先取3位,再每2位一组
    reversed_int = integer_part[::-1]
    parts = [reversed_int[:3]]
    reversed_int = reversed_int[3:]
    
    while reversed_int:
        parts.append(reversed_int[:2])
        reversed_int = reversed_int[2:]
    
    # 反转拼接分组结果,组合小数部分
    formatted_int = ','.join(part[::-1] for part in reversed(parts))
    return f"{formatted_int}.{decimal_part}"

# 测试
print(format_inr(222555555.0))  # 输出: 22,25,55,555.00

JavaScript 实现

利用Intl.NumberFormat直接指定印度地区规则:

const num = 222555555.0;
const formattedNum = new Intl.NumberFormat('en-IN', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
}).format(num);

console.log(formattedNum);  // 输出: 22,25,55,555.00

核心规则说明

  • 整数部分从右侧开始,先分3位,之后每2位为一个分组
  • 强制保留两位小数,不足时自动补零

内容的提问来源于stack exchange,提问作者Sidheswar Mohanty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:12:36