javascript在数值计算的时候结果如何强制不使用科学计数法
解决方案 »
- jquery引用报NetworkError: 400 Bad Request
- jquery .post返回值的问题????
- 发个自己写的小插件,给做企业网站的朋友
- js可以编写一个自动注册QQ号码的脚本么
- 怎样设计滚动条有惯性?
- 关于JS存在数据库问题 再线等待
- 帮忙写个正则表达式吧??
- 怎样在js中控制<input type=file>
- 百度地图api驾车路线经过多个地点,将地点和顺序代入怎么获取距离和时间
- vue里根据路径打印图片,图片在浏览器里可以显示,点了打印以后在打印预览里就读取不到了
- js问题,浏览器报错Cannot read property 'id' of undefined
- 求一个多图片同时滚动的脚本
.toFixed(n)
但在FIREFOX中不行
你自己写的代码FIREFOX不兼容吧,toFixed只是一个函数
我写的测试代码很简单function test() {
var a = new Number(document.getElementById('number1').value);
var b = new Number(document.getElementById('number2').value);
var c = (a*b); document.getElementById('result').value = c.toFixed(c.length);
}
当输入的数值过大的时候在IE上不会变成科学计数法,在FIREFOX上还是科学计数法,c.toFixed(c.length)好像不起作用
toFixed(n),n指的是小数点后的位数
c.toFixed(c.length)这是什么意思?
var b = new Number(999999999.99);
var c = (a * b);alert(c.toFixed(2));测试各个浏览器都可以的阿?如果是无穷大请用 isFinit 判断。
在FIREFOX上试试这个
var a = new Number(9999999999999.99);
var b = new Number(9999999999999.99);
var c = (a * b); alert(c.toFixed(2));
估计 Firefox 有默认数值显示上限。
这样只能把 9.99999999999998e+25 自己写个函数转化一下了 9.99999999999998 x 10 的 25 次方 ...
这个函数写起来应该不难把 :)
// num : 需要转化的数字
// dec : 保留小数位数
function e2c (num, dec) {
var str = new String(num);
var e_pos = str.indexOf('e+');
var p_pos = str.indexOf('.');
// For Firefox 科学计数法
if (e_pos > 0) {
bit = e_pos - p_pos - 1;
tim = str.substr(e_pos + 2);
str = str.substr(0, e_pos).replace('.', '');
var mov = tim - bit;
while (mov > 0) {
str += '0';
mov--;
}
str += '.';
while (dec > 0) {
str += '0';
dec--;
}
return str;
}
return num;
}var a = new Number(9999999999999.99);
var b = new Number(9999999999999.99);
var c = (a * b);alert(e2c(c.toFixed(2), 2));
转成float你自己指定保留小数点位数就可以了.toFixed(n),这个方法特别正确。
[/Quote]