Node.js是一个让 JavaScript 程序运行在服务端的开发平台,它让 JavaScript 变成与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
Nodejs是一个让
JavaScript 程序运行在服务端的开发平台,它让 JavaScript 变成与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
JavaScript写后端开发时发生的一些难题:
一、浮点型数据失去精度难题:
浮点型又分为单精度浮点型(float)和双精度浮点型(double ),在强类型语言中(C,JAVA)中有详尽的详细说明,在 JS 中统称作数值型(Number)。有爱好的阅读者能够去理解有关专业知识,本文仍然进入上面的难题。
第一步看一看没有精度难题的呈现具体情况,源代码下述:
console.log(0.1+0.2); //0.30000000000000004
本应当结果显示是 0.3 才对,可是程序运行结果显示发生了迷之难题。这在后端开发中是一定不准许产生的,这种难题不只在JS中发生,经测试JAVA,PHP都产生该难题,C不存在该难题。其它语言咋也没学过啊!咋也不晓得啊!
讲完难题,下一步讲一下解决方案,源代码下述:
const floatAdd = (arg1, arg2) => {
let r1,r2,m;
try {
r1 = arg1.toString().split(".")[1].length;
} catch(e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch(e) {
r2 = 0;
}
m =Math.pow(10,Math.max(r1,r2));
return (arg1*m+arg2*m)/m;
};
console.log(floatAdd(0.1,0.2)); // 0.3
二、toFixed()四舍五入的BUG:
toFixed() 方法使用定点表示法来格式化一个数值。通俗一点来说,就是说对数据进行四舍五入的处理,定点代表要保留的小数位数。
示例: let a=1.115;
console.log(a.toFixed(2))