我如何格式化例如:
100000为1000.00
和
90为0.90
使用Perl?
我发现并尝试了一些模块,例如Locale::Currency::Format
和Number::Format
,但没有任何效果:/
使用Locale::Currency::Format
我尝试:
use Locale::Currency::Format;
my $total = 19750;
my $convert = currency_format('USD',$total,'FMT_COMMON');
print $convert;
我预计197.50,但印刷品是" 19,750.00美元"。
答案 0 :(得分:5)
my $formatted = sprintf '%.2f', $number/100.0;
以美元计算美元,而不是美分。如果你想使用代表便士的整数来避免舍入误差,那就太好了;良好的做法。但是由你来划分100以获得标准格式的人工清晰输出。
sprintf
函数( s tring print f ormatted,最初来自C标准库,现在可以在许多编程中找到语言)将以各种方式格式化数字。在这种情况下,格式字符串%.2f
请求输出 f loating-point(即十进制,小数,实数,非整数)数字,小数点后2位数。
答案 1 :(得分:3)
要将美分兑换成美元,除以100!
sprintf("%.2f", $total/100) # 197.50
或
currency_format('USD', $total/100, 'FMT_COMMON') # 197.50 USD