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
相关产品推荐
相关产品推荐

