Javascript 函数parseInt()转换时出现bug问题
这是一个很诡异的事情,今天测试的测出来的。parseInt(1.13*100),实际返回值是112。直接看代码吧
代码如下:
<head>
<script type="text/javascript">
function test(){
var thisvalue = 0;
thisvalue=yuanToFen($("#inp").val());
alert(thisvalue);
}
/*元转分*/
function yuanToFen(yuan){
return parseInt(yuan*100,10);//解决方法:将 此处返回改为:parseInt(yuan*1000,10)/10;
}
</script>
</head>
<body>
<div>
<input type="text" id="inp" name="pl" value="1.14"/><!-- 当输入值是:1.13、1.14、1.15、1.16时,此bug才会出现,其他数据目前没有发现有此bug -->
<input type="button" name="ok" value="确认" onclick="test();"/>
</div>
</body>
</html>
当执行以上代码时,你会发现,当你输入1.13-1.16这期间的数字时,比如输入了1.13,但是alert出来的值却是1.12,同样,输入是1.16则alert出1.15.
但是当输入2.13、3.13、0.13都不会出现这样的情况。
此bug对于最做账的业务来说尤其重要。
例如:你要给某某人汇款,汇款单位是(亿元),你汇款1.13个亿,结果实际成了1.12个亿。哈哈。开个玩笑。但是程序是讲究严谨,不管是一分钱还是零点零一分钱是谁的就是谁的,千万不能马虎。
相关推荐
-
Javascript 函数parseInt()转换时出现bug问题
这是一个很诡异的事情,今天测试的测出来的.parseInt(1.13*100),实际返回值是112.直接看代码吧 复制代码 代码如下: <head> <script type="text/javascript"> function test(){ var thisvalue = 0; thisvalue=yuanToFen($("#inp").val()); alert(thisvalue); } /*元转分*/ function yuanT
-
javascript字母大小写转换的4个函数详解
js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现大小写转换的js函数逐一做简单的分析. 1.toLocaleUpperCase 将字符串中所有的字母字符都将被转换为大写的,同时适应宿主环境的当前区域设置. 2.toUpperCase 将字符串中的所有字母都被转化为大写字母. 3.toLocaleLowerCase 将字符串所有的字母字符都被转换为小写
-
javascript中parseInt()函数的定义和用法分析
本文实例讲述了javascript中parseInt()函数的定义和用法.分享给大家供大家参考.具体分析如下: 此函数可以解析一个字符串,并返回一个整数. 语法结构: 复制代码 代码如下: parseInt(string, type) 参数列表: 参数 描述 string 必需.要被解析的字符串. type 可选.表示要解析的数字的基数,通俗的说就是数字的进制,比如二进制.八进制或者十六进制.该值介于2 ~ 36之间. 详细说明: 一.指定type参数: 指定type参数后,函数就会按照指定的t
-
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
[造成原因]:Because PHP's integer type is signed, and many IP addresses will result in negative integers. [解决办法]:其官方手册中提到,可以"you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address&
-
JavaScript的parseInt 取整使用
Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型. 复制代码 代码如下: public class Test { public static void main(String args[]) throws Exception { String str = "020"
-
JavaScript中string转换成number介绍
JavaScript中,可以通过以下3种方法来将string值转换成number: 1.调用Number()来对string进行值类型转换. 2.parseInt(). 3.parseFloat(). Number() 使用Number()函数来对string进行强制类型转换是最直接的做法.不过,这种做法有一个局限性:如果字符串截去开头和结尾的空白字符后,不是纯数字字符串,那么最终返回结果为NaN.David Flanagan的JavaScript – The Definitive Guide
-
常用Javascript函数与原型功能收藏(必看篇)
如下所示: // 重复字符串 String.prototype.repeat = function(n) { return new Array(n+1).join(this); } // 替换全部 String.prototype.replaceAll = function(str1, str2) { return this.replace(new RegExp(str1, "gm"), str2); } // 清除空格 String.prototype.trim = function
-
JavaScript函数的调用以及参数传递
JavaScript 函数调用 JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象. Note 注意 this 是保留关键字,你不能修改 this 的值. 调用 JavaScript 函数 函数中的代码在函数被调用后执行. 作为一个函数调用 实例 function myFunction(a, b) { return a * b; } myFunction(10, 2)
-
js数值和和字符串进行转换时可以对不同进制进行操作
Javascript数值和和字符串进行转换时,可以对不同的进制进行操作. 转换例子如下: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>带进制的数值和字符串间进行转换</title> </head> <body> <scri
-
轻松学习JavaScript函数中的 Rest 参数
JavaScript函数可以使用任意数量的参数.与其他语言(如C#和Java)不同,你可以在调用JavaScript函数时传递任意数量的参数.JavaScript函数允许未知数量的函数参数.在ECMAScript 6之前,JavaScript有一个变量来访问这些未知或可变数目的参数,这是一个类似数组的对象,并非一个数组.细想以下代码来理解arguments变量: function add(){ var result = 0; for(let i=0;i<arguments.length;i++)
随机推荐
- Oracle知识整理笔记
- inputSuggest文本框输入时提示、自动完成效果(邮箱输入自动补全插件)
- 看到一个JS正则的题
- 一些Oracle数据库中的查询优化建议综合
- 深入解析Swift中switch语句对case的数据类型匹配的支持
- js获取指定日期前后的日期代码
- js-FCC算法-No repeats please字符串的全排列(详解)
- js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
- Go语言中函数的参数传递与调用的基本方法
- chr(9)、chr(10)、chr(13)、chr(32)、chr(34)讲解
- 无刷新动态加载数据 滚动条加载适合评论等页面
- oracle 11g数据库安全加固注意事项
- SQL查询语句优化的实用方法总结
- 解析PHP 使用curl提交json格式数据
- javascript查询字符串参数的方法
- C#中string与byte[]的转换帮助类-.NET教程,C#语言
- 为什么有些文件上传后无法管理
- 月下载量上千次Android实现二维码生成器app源码分享
- C#实现的简单链表类实例
- 解析web文件操作常见安全漏洞(目录、文件名检测漏洞)