Files
jiu/client/lib/core/utils/money.dart
T

21 lines
689 B
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/// 分转元字符串,千分位分组 + 两位小数,纯整数运算(金额禁 float)。
///
/// 例:299900 → "2,999.00"100 → "1.00"0 → "0.00";负数保留符号。
String yuanFromMinor(int minor) {
final negative = minor < 0;
final abs = negative ? -minor : minor;
final yuan = abs ~/ 100;
final cents = abs % 100;
final yuanDigits = yuan.toString();
final len = yuanDigits.length;
final buffer = StringBuffer();
for (var i = 0; i < len; i++) {
if (i > 0 && (len - i) % 3 == 0) buffer.write(',');
buffer.write(yuanDigits[i]);
}
final centsStr = cents.toString().padLeft(2, '0');
return '${negative ? '-' : ''}$buffer.$centsStr';
}