vue中数字转汉字,带小数转化

小数转为角分

export default {  methods: {  numberToChinese(num) {  if (typeof num !== 'number' || isNaN(num)) {  return '输入的不是一个有效的数字';  }  const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];  const units = ['', '十', '百', '千'];  const bigUnits = ['', '万', '亿', '兆'];  const decimalUnits = ['角', '分']; // 小数部分的单位  // 处理整数部分  let integerPart = Math.floor(num); // 整数部分  let decimalPart = num - integerPart; // 小数部分  let str = '';  let zeroFlag = false;  let unitIndex = 0;  let bigUnitIndex = 0;  while (integerPart > 0) {  const digit = integerPart % 10;  if (digit === 0) {  if (!zeroFlag) {  str = chineseNums[digit] + str;  zeroFlag = true;  }  } else {  str = chineseNums[digit] + units[unitIndex] + str;  zeroFlag = false;  }  integerPart = Math.floor(integerPart / 10);  unitIndex++;  if (unitIndex === units.length && integerPart > 0) {  unitIndex = 0;  bigUnitIndex++;  if (bigUnitIndex < bigUnits.length) {  str = bigUnits[bigUnitIndex] + str;  }  }  }  // 处理小数部分  if (decimalPart > 0) {  str += '点'; // 添加“点”作为小数点的中文表示  decimalPart *= 100; // 转换为百分位  let decimalStr = '';  for (let i = 0; i < decimalUnits.length; i++) {  const digit = Math.floor(decimalPart % 10);  if (digit !== 0) {  decimalStr = chineseNums[digit] + decimalUnits[i] + decimalStr;  }  decimalPart = Math.floor(decimalPart / 10);  if (decimalPart === 0) {  break;  }  }  str += decimalStr;  }  // 如果整个数字为0,则直接返回“零”  if (str === '') {  return '零';  }  return str;  }  }  
}

输出:一百二十三点四五

在Vue中将带有小数的数字转化为中文,但小数部分不带单位(例如:不转换为“角”、“分”等),我们可以仅将小数部分作为普通数字处理,不进行单位转换

export default {  methods: {  numberToChinese(num) {  if (typeof num !== 'number' || isNaN(num)) {  return '输入的不是一个有效的数字';  }  const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];  const units = ['', '十', '百', '千'];  const bigUnits = ['', '万', '亿', '兆'];  // 处理整数部分  let integerPart = Math.trunc(num); // 整数部分  let decimalPart = num - integerPart; // 小数部分  let str = '';  let zeroFlag = false;  let unitIndex = 0;  let bigUnitIndex = 0;  while (integerPart > 0) {  const digit = integerPart % 10;  if (digit === 0) {  if (!zeroFlag) {  str = chineseNums[digit] + str;  zeroFlag = true;  }  } else {  str = chineseNums[digit] + units[unitIndex] + str;  zeroFlag = false;  }  integerPart = Math.trunc(integerPart / 10);  unitIndex++;  if (unitIndex === units.length && integerPart > 0) {  unitIndex = 0;  bigUnitIndex++;  str = bigUnits[bigUnitIndex] + str;  }  }  // 处理小数部分  if (decimalPart > 0) {  str += '点'; // 添加“点”作为小数点的中文表示  decimalPart *= 100; // 假设处理到小数点后两位  let decimalStr = '';  let decimalUnitIndex = 0;  while (decimalPart > 0 && decimalUnitIndex < 2) { // 假设只处理到小数点后两位  const digit = Math.trunc(decimalPart % 10);  if (digit !== 0) {  decimalStr = chineseNums[digit] + decimalStr;  }  decimalPart = Math.trunc(decimalPart / 10);  decimalUnitIndex++;  }  str += decimalStr;  }  // 如果整个数字为0,则直接返回“零”  if (str === '') {  return '零';  }  return str;  }  }  
}

日常

提示:当前创作和你的工作、学习是什么样的关系
例如:

  1. 创作是否已经是你生活的一部分了
  2. 有限的精力下,如何平衡创作和工作学习

0-9999的转化

在Vue中,你可以创建一个方法来将数字转换为中文表示。这通常涉及到对数字的每个位进行遍历,并根据位数将其转换为对应的中文表示。

以下是一个简单的例子,将0-9999之间的数字转换为中文

export default {  methods: {  numberToChinese(num) {  const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];  const units = ['', '十', '百', '千'];  if (num === 0) return chineseNums[0];  let str = '';  let zeroFlag = false; // 用于标记是否出现过0  for (let i = 0; i < 4; i++) {  const digit = Math.floor((num / Math.pow(10, i)) % 10;  if (digit === 0) {  if (!zeroFlag) {  str = chineseNums[digit] + str;  zeroFlag = true;  }  } else {  str = chineseNums[digit] + units[i] + str;  zeroFlag = false;  }  }  return str;  }  }  
}

保留三位小数

28.155 输出:二十八点一五五

numberToChinese(num) {  if (typeof num !== 'number' || isNaN(num)) {  return '输入的不是一个有效的数字';  }  const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];  const units = ['', '十', '百', '千'];  const bigUnits = ['', '万', '亿', '兆'];  // 处理整数部分  let integerPart = Math.trunc(num);  let decimalPart = (num - integerPart).toFixed(3).slice(2); // 保留三位小数,并去掉整数部分  let str = '';  let zeroFlag = false;  let unitIndex = 0;  let bigUnitIndex = 0;  while (integerPart > 0) {  const digit = integerPart % 10;  if (digit === 0) {  if (!zeroFlag) {  str = chineseNums[digit] + str;  zeroFlag = true;  }  } else {  str = chineseNums[digit] + units[unitIndex] + str;  zeroFlag = false;  }  integerPart = Math.trunc(integerPart / 10);  unitIndex++;  if (unitIndex === units.length && integerPart > 0) {  unitIndex = 0;  bigUnitIndex++;  str = bigUnits[bigUnitIndex] + str;  }  }  // 处理小数部分  if (decimalPart !== '000') {  str += '点'; // 添加“点”作为小数点的中文表示  for (let i = 0; i < decimalPart.length; i++) {  const digit = parseInt(decimalPart[i]);  if (digit !== 0) {  str += chineseNums[digit];  }  }  }  // 如果整个数字为0,则直接返回“零”  if (str === '') {  return '零';  }  return str;  },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市内涝排水新模式:慧天[HTWATER]

慧天[HTWATER]软件&#xff1a;慧天排水数字化分析平台针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模…

Transformers 直观解释——不仅是如何工作,而且为什么工作得这么好

输入序列如何到达Attention模块 注意力模块存在于编码器堆栈中的每个编码器中&#xff0c;以及解码器堆栈中的每个解码器中。我们将首先放大编码器的注意力。 Attention in the Encoder&#xff1a; 举个例子&#xff0c;假设我们正在研究一个英语到西班牙语的翻译问题&…

【旅游】泉州攻略v1.0.0

一、泉州古城 泉州市距离深圳大约520公里&#xff0c;从深圳北站出发&#xff0c;高铁大约3小时30分。 到达泉州西站后&#xff0c;往东南方向大约8公里&#xff0c;就可以到达主要的旅游景点泉州古城。 古城很适合使用一天玩耍&#xff0c;核心路线如下&#xff1a; 一路的景…

C++ STL教程

C STL教程 文章目录 C STL教程1.1 std::vector1.1.1vector的定义1.1.2vector容器的初始化1.1.3vector容器内元素的访问和修改1.1.4vector中的常用函数 1.2 std::string1.2.1string的定义1.2.2string的初始化1.2.3string中元素的访问和修改1.2.4string中连接字符串1.2.5string中…

AtCoder Beginner Contest 337 A - E

A - Scoreboard 大意 高桥队和青木队进行了场比赛&#xff0c;给出每场比赛中高桥队和青木队的积分&#xff0c;问最后谁总分更高或平局。 思路 统计总分比较即可。 代码 #include<iostream> using namespace std; int main(){int n, a0, b0;cin >> n;while(…

介绍部署esxi8.0产品的方式

什么是esxi esxi的中文叫裸机虚拟机管理器 ESXi是由VMware公司开发的一种裸机虚拟机管理器&#xff0c;全称为VMware ESXi。 ESXi是一种虚拟化技术&#xff0c;专门设计用于在物理服务器上运行虚拟机&#xff0c;它的主要特点是能够最大限度地降低硬件配置要求并简化部署过程…

184. 部门工资最高的员工

文章目录 题意思路代码 题意 题目链接 查出每个部门最高工资 思路 子查询group by 代码 select b.name as Department,a.name as Employee,salary from Employee as a left joinDepartment as b ona.departmentId b.id where(a.departmentId, salary) in(select departme…

C++迈向精通:学习笔记:类属性与类方法

类属性与类方法 注意&#xff1a;这不是教程&#xff0c;是学习笔记&#xff0c;不适合初学者阅读&#xff01;&#xff01; 类属性与方法 成员属性与成员方法 在类中定义的方法与属性&#xff0c;就叫做成员属性与方法。 类属性与类方法 依然在类里面&#xff0c;但区别…

vcf文件可以用excel打开吗?四种解决方案

vcf文件可以用excel打开吗&#xff1f; 当然可以。 一、VCF文件简介 VCF&#xff08;vCard&#xff09;文件是一种用于存储联系人信息的文件格式。它通常包含姓名、电话号码、电子邮件地址、地址等详细信息。VCF文件在多种设备和操作系统中广泛使用&#xff0c;特别是在电子邮…

字节流 字符流回顾

字节流&#xff1a;字节流以字节为单位进行数据传输。这种流适用于处理二进制数据&#xff0c;例如图片、音频、视频等文件。在Java中&#xff0c;字节流由InputStream和OutputStream类及其子类实现。常见的字节流类包括FileInputStream、FileOutputStream、等。 字符流&#…

2024全国水科技大会【高峰对话】北京排水集团(附部分报告题目)

北京排水集团坚持“服务社会、造福百姓、企业利益与公众利益高度一致”的宗旨&#xff0c;充分认知自身在地区经济发展中的社会责任&#xff0c;以满足政府与公众对公用事业企业服务的需求为首要任务&#xff0c;通过“现代化的队伍、现代化的手段、现代化的设备和现代化的管理…

springBoot+ureport报表引擎

UReport是一款基于单元格迭代模型的纯Java中式报表引擎。它架构于Spring之上&#xff0c;因此与企业应用具有良好的集成能力。UReport提供了基于Eclipse插件与基于网页的两种报表模版设计方式&#xff0c;采用类Excel报表模版设计风格&#xff0c;简单、易上手&#xff0c;可在…

数据结构和算法:搜索

二分查找 二分查找&#xff08;binary search&#xff09; 是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止。 给定一个长度为 &#x1d45b; 的数组 nums &#xff0c;元素按从小到大…

django orm DateTimeField 6位小数精度问题

from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段

如何在家中使用手机平板电脑 公司iStoreOS软路由实现远程桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是&#xff1a;** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能&#xff0c;也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

《1w实盘and大盘基金预测 day12》

昨天预测大错特错&#xff0c;大盘也破位了。 昨天预测&#xff1a; 3006-3043-3053 震荡反弹&#xff0c;冲高回落 主要关注证券、保险等金融板块&#xff0c;是否能带大盘到新高&#xff1f; 吐槽一下医疗&#xff0c;真lj。吐了 科技可能还要调整&#xff0c;明显感觉资金…

CloudCompare 二次开发(29)——最小二乘拟合平面

目录 一、概述二、代码集成三、结果展示一、概述 使用CloudCompare实现的最小二乘拟合平面。具体计算原理见:PCL 最小二乘拟合平面。 二、代码集成 1、mainwindow.h文件public中添加: void doActionPCLLeastSquareFitPlane(); // 最小二乘拟合平面2、mainwindow.cpp文件…

keyStore类处理

加载公钥证书, 成为keyStore public static void main(String[] args) {Security.addProvider(new BouncyCastleProvider());String certFilePath "C:\\alipayRootCert.crt";String certType "X.509";String provider "BC";try (FileInputSt…

mybatis一键配置

mybaits起步依赖<!-- mybatis的起步依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- mysql驱动 --><dependency><groupId&…

2024年【起重机械指挥】考试报名及起重机械指挥免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机械指挥考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机械指挥免费试题题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机械指挥模拟考试题库很简单。 1、【多选题】严禁吊车超负…