PHP HTML实现加减乘除案例,JS实现精确加减乘除的实例

项目中要使用 JS 实现自动计算的功能,进行一些浮点数运算时,计算结果却是一长串的值,本文主要和大家分享JS实现精确加减乘除的实例,希望能帮助到大家。

具体代码如下://加法函数

2 function accAdd(arg1, arg2) {

3 var r1, r2, m;

4 try {

5 r1 = arg1.toString().split(".")[1].length;

6 }

7 catch (e) {

8 r1 = 0;

9 }

10 try {

11 r2 = arg2.toString().split(".")[1].length;

12 }

13 catch (e) {

14 r2 = 0;

15 }

16 m = Math.pow(10, Math.max(r1, r2));

17 return (arg1 * m + arg2 * m) / m;

18 }

19 //给Number类型增加一个add方法,,使用时直接用 .add 即可完成计算。

20 Number.prototype.add = function (arg) {

21 return accAdd(arg, this);

22 };

23

24

25 //减法函数

26 function Subtr(arg1, arg2) {

27 var r1, r2, m, n;

28 try {

29 r1 = arg1.toString().split(".")[1].length;

30 }

31 catch (e) {

32 r1 = 0;

33 }

34 try {

35 r2 = arg2.toString().split(".")[1].length;

36 }

37 catch (e) {

38 r2 = 0;

39 }

40 m = Math.pow(10, Math.max(r1, r2));

41 //last modify by deeka

42 //动态控制精度长度

43 n = (r1 >= r2) ? r1 : r2;

44 return ((arg1 * m - arg2 * m) / m).toFixed(n);

45 }

46

47 //给Number类型增加一个add方法,,使用时直接用 .sub 即可完成计算。

48 Number.prototype.sub = function (arg) {

49 return Subtr(this, arg);

50 };

51

52

53 //乘法函数

54 function accMul(arg1, arg2) {

55 var m = 0, s1 = arg1.toString(), s2 = arg2.toString();

56 try {

57 m += s1.split(".")[1].length;

58 }

59 catch (e) {

60 }

61 try {

62 m += s2.split(".")[1].length;

63 }

64 catch (e) {

65 }

66 return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);

67 }

68 //给Number类型增加一个mul方法,使用时直接用 .mul 即可完成计算。

69 Number.prototype.mul = function (arg) {

70 return accMul(arg, this);

71 };

72

73

74 //除法函数

75 function accDiv(arg1, arg2) {

76 var t1 = 0, t2 = 0, r1, r2;

77 try {

78 t1 = arg1.toString().split(".")[1].length;

79 }

80 catch (e) {

81 }

82 try {

83 t2 = arg2.toString().split(".")[1].length;

84 }

85 catch (e) {

86 }

87 with (Math) {

88 r1 = Number(arg1.toString().replace(".", ""));

89 r2 = Number(arg2.toString().replace(".", ""));

90 return (r1 / r2) * pow(10, t2 - t1);

91 }

92 }

93 //给Number类型增加一个div方法,,使用时直接用 .div 即可完成计算。

94 Number.prototype.div = function (arg) {

95 return accDiv(this, arg);

96 };

使用方法如下://加法示例(其它的都类似)

2 function calculate() {

3 //数字1

4 var num1 = 10;

5 //数字2

6 var num2 = 5;

7 //计算 num1 + num2

8 alert(num1.add(num2));

9 }

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值