`
悟⑤道
  • 浏览: 12697 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

javascript格式化浮点型数据

阅读更多

今天项目测试的时候,测试在往input中输入浮点数时只输入到“.”然后系统也接受了,这很容易理解,但他们就当bug提了,当时很是郁闷 ,但为了能结项也没办法,改吧!回头就写了个js自动补齐或自动截取的函数,函数中将输入的浮点数当做字符串处理,然后根据要求返回有效数字。代码拿出来跟大家分享一下,有啥好的想法直接提啊……

function toFloat(val,n){
	if("" != val){
		val = val + "";
		//递归调用时val为int
		if(val.indexOf(".") == 0){
			val = "0" + val;
		}
		//val不含小数点
		if(val.indexOf(".") == -1){
			var zero = ".";
			for(i=0; i<n; i++){
				zero = zero + "0";
			}
			return val + zero;
			//val小数点后的位数比需要的多
		}else if(eval(val.substring(val.indexOf(".") + 1,val.length).length) > eval(n)){
			var next = val.substring(val.indexOf(".") + eval(n) + 1,val.indexOf(".") + eval(n) + 2);
			//四舍五入
			if(next >= 5){
				var result = eval(val.substring(0,val.indexOf(".") + eval(n) + 1)) + 0.01;
				//四舍五入后result变为int型
				return toFloat(result,n);
			}else{
				return val.substring(0,val.indexOf(".") + eval(n) + 1);
			}
		}else if(eval(val.substring(val.indexOf("."),val.length).length) < eval(n)){
			//截取的小数的后的数字并减去点占的长度
			var pointNum = eval(val.substring(val.indexOf("."),val.length).length) - 1;
			//需要补0的个数
			var zeroNum = eval(n - pointNum);
			var zero = "";
			for(i=0; i<zeroNum; i++){
				zero = zero + "0";
			}
			return val + zero;
		}else{
			//符合需求直接返回
			return val;
		}
	}else{
		var zero = "0.";
		for(i=0; i<n; i++){
			zero = zero + "0"
		}
		return zero;
	}
}



附件中我的测试demo,工程是在myEclipse8.5中创建的。
哎,郁闷,几十k的文件上传不了,公司又把端口禁用了,万恶啊!
以下是我测试页面,很简单,不过需要加入jQuery包:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>toFloat Test</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<script type="text/javascript" src="toFloat.js"></script>
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
		$(function(){
			$("#textId").focus(function(){
				$("#textId").val("");
			});
			$("#textId").blur(function(){
				var pointNum = $("#pointNum").val();
				var text = $("#textId").val();
				$("#textId").val(toFloat(text,pointNum))
			});
		});
	</script>
  </head>
  <body>
  <table style="border: thin" align="center">
  	<tr>
  		<td>
  			保留的小数位数:
  		</td>
  		<td>
		  	<input type = "text" name="pointNum" id = "pointNum" value="2">&nbsp;&nbsp;&nbsp;&nbsp;
  		</td>
	</tr>
	<tr>
		<td>
  			检验值(数字):
  		</td>
  		<td>
		    <input type = "text" name="textId" id = "textId" value="输入数字,失去焦点检测!">
  		</td>
  	</tr>
  </table>
  </body>
</html>


 

分享到:
评论

相关推荐

    Python变量的输入输出-格式化输出浮点型变量

    Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...

    javascript

    1. JavaScript的变量类型:JavaScript中主要有几种基本的变量类型,包括字符串、整型、浮点型、布尔型、数组、对象、JSON对象、NaN、null和undefined。这些类型帮助我们定义和操作数据。 - 字符串类型用于表示文本...

    JavaScript的数据类型和运算符PPT学习教案.pptx

    - JavaScript中的常量是不可变的,包括整型、实型(浮点型)、布尔值、字符串、`null`和`undefined`。它们对应着基本数据类型。 5. **空白符和换行符**: - 解释器通常会忽略空格、制表符和换行符,除非它们在...

    cJSON库可以更改数字精度

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。cJSON库使得在C语言中处理JSON变得非常方便。 **cJSON库的结构与功能** cJSON库主要包括以下几个...

    韩顺平《轻松搞定网页设计HTML+CSS+JAVASCRIPT》之Javascript学习笔记

    基本数据类型包括数值型(整型和浮点型)、字符串型、布尔型、null和undefined。数值型可以是整数或小数,字符串是字符序列,布尔型只有true和false两个值,null表示“无”或空值,undefined表示变量未定义。引用...

    Python数据分析与可视化-公共课课件PPT模板.pptx

    3. **输入输出与基本数据类型**:涵盖字符串、整型、浮点型、布尔型等基本数据类型,以及print()函数和input()函数的使用。 4. **程序控制结构**:讲解条件语句(if-else)、循环(for和while)以及逻辑运算符。 5. ...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    浮点型数据测试.php 浮点型数据测试 字符串数据测试.php 字符串数据测试 数组数据测试.php 数组数据测试 对象测试....

    javascript参考教程

    - **浮点型**:可以存储带有小数的数值。 - **字符串型**:使用单引号`''`或双引号`""`包裹的文本。 - 示例: ```javascript var number = 10; // 整型 var decimal = 10.5; // 浮点型 var text = "Hello"; /...

    js 金额格式化来回转换示例

    首先,我们来看fmoney函数,它的作用是将输入的浮点型数字格式化成带有千位分隔符和固定小数位的字符串。这个函数接受两个参数,第一个参数s是需要格式化的浮点数字符串,第二个参数n是指定要保留的小数位数。如果...

    JavaScript学习.zip

    "数据类型"和"算数"部分,可能在`02.JS基本操作.html`或者单独的文档中有所阐述,包括JavaScript的动态类型特性以及对整型、浮点型数值的处理。算术部分可能涉及了数学计算,例如取模、指数运算等。 `07.JS结构....

    详解JavaScript的数据类型以及数据类型的转换

    JavaScript中的数字型数据不区分整型和浮点型,所有数字都被视为双精度浮点数。它可以表示的数值范围是`-2^53`到`+2^53`。数字可以使用普通记数法或科学记数法表示。例如,`3e7`表示30000000,而`0.3e7`表示3000000...

    廖雪峰 JavaScript Python2.7/3 Git 教程(PDF,EPUB)

    1. **基础语法**:变量、数据类型(整型、浮点型、字符串、列表、元组、字典)、流程控制、函数、类。 2. **Python 2与3的区别**:如print语句、除法运算、字典排序、异常处理等方面的差异。 3. **标准库**:如os...

    C++使用JsonCpp库操作json格式数据示例

    最后,调用Json::Value类的toStyledString()方法,可以得到格式化的JSON字符串。 反序列化操作是指将JSON格式的字符串转换为程序中可以操作的数据结构。文档中的readJson函数即展示了如何将一个JSON格式的字符串...

    Python爬虫数据可视化-1-学习字符串的必要性.ev4.rar

    Python允许字符串与其它类型的数据(如整型、浮点型)进行交互,使得在处理混合数据类型的项目时更为便捷。例如,将数字转换为字符串后,可以方便地拼接到URL中,或者在CSV文件中混排数值和文本。 总结来说,Python...

    用js格式化金额可设置保留的小数位数

    // s 为要格式化的参数(浮点型),n 为小数点后保留的位数 function formatMoney(s, n) { n = n &gt; 0 && n ; // 如果n不在0到20之间,则默认为2 s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ...

    Unity数据处理

    - **SetFloat(string key, float value)**:用于存储浮点型数据。 - **GetFloat(string key)**:通过键名读取浮点型数据。 - **SetString(string key, string value)**:用于存储字符串数据。 - **GetString(string ...

    Java&Javascript期末考试理论试卷模版[归类].pdf

    8. int型变量的默认值是0,浮点型(如float或double)的默认值通常是0.0,布尔型变量的默认值是false。 9. Java中,定义子类时使用关键字"extends"指定父类,若未指定父类,默认父类是Object。 二、单选题部分涉及...

    python数据工程师公司面试题整理

    - 变量与数据类型:了解Python的基本数据类型如整型(int)、浮点型(float)、字符串(str)、布尔型(bool)和复合类型如列表(list)、元组(tuple)、字典(dict)。 - 运算符:包括算术运算符、比较运算符、...

    JavaScript小技巧

    JavaScript提供了多种方式来处理不同进制之间的转换,这对于处理数据格式化等问题非常有用。 - **十六进制转换**:`(int).toString(16);`,将整数转换为十六进制表示,如12转换为"C"。 - **八进制转换**:`(int)....

Global site tag (gtag.js) - Google Analytics