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

时间: 2025-01-01 07:51:30

Javascript 函数parseInt()转换时出现bug的相关文章

javascript使用parseInt函数时需要注意的一些问题

这个问题大家可能会忽视,我在项目中就遇到了.写了提醒一下大家!!! 在用javascript的parseInt函数时,parseInt("08")或者parseInt("09")返回的居然是0,而parseInt("01")...parseInt("07")都是正确的,一开始很难理解,后来发现出现这个问题的原因是当在前面有"0"时,javascript的debugger会认为这是一个八进制数,而"

javascript中parseInt函数的用法

javascript的parseInt函数,大家都知道是干啥的但你知道parseInt("07") 返回多少 ?parseInt("08") 又返回多少 ? 正确答案是parseInt("07") 返回8parseInt("08") 返回0 你知道问题在哪?其实,这个问题可能大家都没想过吧. 用javascript的parseInt函数时,parseInt("08")或者parseInt("09&

关于javascript的parseInt() 08,09时输出结果为0的原因以及解决方法

先来贴图: 可以发现在使用parseInt()对字符串进行转换时,唯独“08”,“09”转换为0,而其他的都是转换成对应的数字,这到底是什么原因呢? 原来当字符串首位是“0”的时候,js默认其为8进制,所以问题来了,8进制数字只有0-7,所以前面的0-7都没有问题. 然而到了8和9问题就来了,8和9在8进制中是不合格的,所以将其输出为0. 解决方法: 将parseInt的参数加上,指定其转换为10进制就ok了. 唉,还是太年轻!

javascript将浮点数转换成整数

Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 (1).parseInt("13nash");//13 (2).parseInt("")// NaN (3).parseInt("0xA") //10(十六进制) (4).parseInt(" 13")//13 (5)

JavaScript 的 parseInt 取整

http://www.neoease.com/javascript-get-integer-via-parseint/ JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 parseInt 取整和 parseFloat 取浮点数. Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获

转战JS(1) 初探与变量类型、运算符、常用函数与转换

转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不是那么简单的.很多的细节部分以前都没有注意到,现在把学习的知识点记录下来,做为学习笔记,好时不时看看.如果有什么错误,还请各位看官多多包涵.多多指正. JavaScript是一门轻量型的面向Web编程的脚本言语言,常被简称为:JS.广泛应用于PC和各种移动设备中,常和HTML.CSS一起组成网页页面

javascript函数大全

JavaScript函数大全 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或valu

细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed(3);//四舍五入保留3位小数. 3.String(字符串) var s1='hello';//字符串类型 字符串:(值类型,字符串不可变特性) 4.Undefined(未定义) undefined属于值类型,与其他值计算得到的结果不是

【转载】100多个很有用的JavaScript函数以及基础写法大集合

1.document.write("");为 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转