首页 > 编程语言 >php 金额格式胡

php 金额格式胡

时间:2023-10-27 11:00:26浏览次数:41  
标签:tmp cur money 金额 len step sm 格式 php

//转换不彻底
function ExchangeMoney($N_money){
$A_tmp=explode(".",$N_money ); //将数字按小数点分成两部分,并存入数组$A_tmp
$I_len=strlen($A_tmp[0]); //测出小数点前面位数的宽度
if($I_len%3==0) {
$I_step=$I_len/3; //如前面位数的宽度mod 3 = 0 ,可按,分成$I_step 部分
}else {
$step=($I_len-$I_len%3)/3+1; //如前面位数的宽度mod 3 != 0 ,可按,分成$I_step 部分+1
}
$C_cur="";
//对小数点以前的金额数字进行转换
while($I_len<>0) {
$I_step--;
if($I_step==0) {
$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3);
}else {
$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3).",";
}
$A_tmp[0]=substr($A_tmp[0],$I_len-($I_step)*3);
$I_len=strlen($A_tmp[0]);
}
//对小数点后面的金额的进行转换
if($A_tmp[1]=="") {
$C_cur .= ".00";
}else {
$I_len=strlen($A_tmp[1]);
if($I_len<2) {
$C_cur .= ".".$A_tmp[1]."0";
}else {
$C_cur .= ".".substr($A_tmp[1],0,2);
}
}
return $C_cur;
}
//转换彻底,但是小数点如果只有一位,不补零待改进
function ExchangeMoney($money, $digit = 3, $separator = ','){
$sm = (string)abs($money);
$dot = strstr($sm, '.');
if ($dot) {
$sm = strstr($sm, '.', true);
}
$s = strlen($sm) % $digit; // 开始下标
$num = (strlen($sm) - $s) / $digit; // 次数

for ($i = 0; $i < $num; $i++) {
if ($i != 0) {
$s += $digit;
} else {
if ($s == 0) {
continue;
}
}
$sm = substr_replace($sm, $separator, $s, 0);
$s++;
}

if ($money < 0) {
$sm = '-' . $sm;
}
return $sm . $dot;
}

标签:tmp,cur,money,金额,len,step,sm,格式,php
From: https://www.cnblogs.com/2019piggy/p/17791273.html

相关文章

  • php结合web uploader插件实现分片上传文件
    这篇文章主要为大家详细介绍了php结合webuploader插件实现分片上传文件,采用大文件分片并发上传,极大的提高了文件上传效率,感兴趣的小伙伴们可以参考一下 最近研究了下大文件上传的方法,找到了webuploaderjs插件进行大文件上传,大家也可以参考这篇文章进行学习:《WebUploader......
  • Excel设置日期格式没有反应
    1. 问题描述   将某一列转换为格式,发现怎么转换都不成功。   例如:想把10/20/231:40 转换成2023-10-201:40  却无法转换成功2. 解决方法   网上说的数据分列啥的方法都不好使,简单粗暴一点,直接利用DATE函数来解决即可。(1)第一步:       ......
  • php魔术方法
    PHP中把以两个下划线__开头的方法称为魔术方法(Magicmethods),这些方法在PHP中充当了举足轻重的作用。魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),......
  • 什么是yaml格式与json格式
    什么是yaml格式与json格式yaml格式:文件名格式以.yml.yaml为后缀,用空格缩进表示字段的层级关系,可读性高,易于人类管理yaml格式布尔值类型:只有在是true/false时为真,假的意识例:debug:true 布尔值类型debug:"true"字符串类型​debug:false  布尔值类型debu......
  • PHP RSA加密解密实例
    <?phpheader('Content-Type:text/html;charset=utf-8');//RSA加密解密实例$private_key=<<<EOF-----BEGINRSAPRIVATEKEY-----MIICXQIBAAKBgQC3//sR2tXw0wrC2DySx8vNGlqt3Y7ldU9+LBLI6e1KS5lfc5jlTGF7KBTSkCHBM3ouEHWqp1Z......
  • ASD光谱数据如何转为TXT格式?
      本文介绍基于ViewSpecPro软件,将ASD地物光谱仪获取到的.asd格式文件,批量转换为通用的.txt文本格式文件的方法。  ASD光谱仪是英国MalvernPanalytical公司研发的系列野外便携式全范围光谱辐射仪和光谱仪,可以获取地物的实时光谱信息。我们用这一系列中的设备产品对地物的光谱......
  • C# Linq to Enitty Lamda中日期格式化,请使用SqlFunctions.DateName及SqlFunctions的其
    vardata=db.Invoice.Select(i=>newInvoiceVM{InvoiceId=i.InvoiceId,GroupIds=SqlFunctions.DateName("yyyy",i.BillDate)+"-"+SqlFunctions.DateName("MM",i.BillDate),Description=i.Description,CreateDate=i.Cre......
  • 多格式转pdf——txt转pdf
    1publicstaticStringtxtToPdfConverter(StringtxtFilePath,StringpdfFilePath,StringfontPath)throwsException{2//创建Document对象3Documentdocument=newDocument();4//创建PdfWriter对象将文档写入文件5P......
  • 多格式转pdf——docx 转 pdf
    1publicstaticStringdocxToPdfConverter(StringdocxFilePath,StringpdfFilePath,StringfontPath)throwsException{2FileInputStreamfile=newFileInputStream(docxFilePath);3XWPFDocumentdocxDocument=newXWPFDocument(file)......
  • 多格式转pdf——md 转 pdf
    publicstaticStringmdToPdfConverter(StringmdFilePath,StringpdfFilePath,StringfontPath)throwsException{//创建Document对象Documentdocument=newDocument();//创建PdfWriter对象将文档写入文件PdfWriter.getInsta......