1. var floatCalc = function (a, b) {
    2. a = a + '', b = b + '';
    3. var aNum = a.indexOf('.'),
    4. bNum = b.indexOf('.'),
    5. aSum,
    6. bSum,
    7. resultNum,
    8. inta,
    9. intb;
    10. aSum = aNum < 0 ? 0 : a.split('.')[1].length;
    11. bSum = bNum < 0 ? 0 : b.split('.')[1].length;
    12. resultNum = aSum > bSum ? aSum : bSum;
    13. inta = aNum < 0 ? Number(a + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
    14. a = a.replace('.', '');
    15. a = resultNum == aSum ? a : a + (Math.pow(10, resultNum - aSum) + '').replace('1', '');
    16. return Number(a);
    17. }())
    18. intb = bNum < 0 ? Number(b + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
    19. b = b.replace('.', '');
    20. b = resultNum == bSum ? b : b + (Math.pow(10, resultNum - bSum) + '').replace('1', '');
    21. return Number(b);
    22. }())
    23. return {
    24. a: inta,
    25. b: intb,
    26. num: resultNum
    27. };
    28. }
    29. const _Number: any = Number;
    30. //加法
    31. _Number.prototype.add = function (n) {
    32. var o = floatCalc(this, n);
    33. return (o.a + o.b) / Math.pow(10, o.num);
    34. }
    35. //减法
    36. _Number.prototype.minus = function (n) {
    37. var o = floatCalc(this, n);
    38. return (o.a - o.b) / Math.pow(10, o.num);
    39. }
    40. //乘法
    41. _Number.prototype.subtract = function (n) {
    42. var o = floatCalc(this, n);
    43. return (o.a * o.b) / Math.pow(10, o.num * 2);
    44. }
    45. //除法
    46. _Number.prototype.divide = function (n) {
    47. var o = floatCalc(this, n);
    48. return (o.a / o.b);
    49. }
    1. var floatCalc = function (a: (number | string), b: (string | number)) {
    2. a = a + '', b = b + '';
    3. var aNum = a.indexOf('.'),
    4. bNum = b.indexOf('.'),
    5. aSum,
    6. bSum,
    7. resultNum,
    8. inta,
    9. intb;
    10. aSum = aNum < 0 ? 0 : a.split('.')[1].length;
    11. bSum = bNum < 0 ? 0 : b.split('.')[1].length;
    12. resultNum = aSum > bSum ? aSum : bSum;
    13. inta = aNum < 0 ? Number(a + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
    14. a = a.replace('.', '');
    15. a = resultNum == aSum ? a : a + (Math.pow(10, resultNum - aSum) + '').replace('1', '');
    16. return Number(a);
    17. }())
    18. intb = bNum < 0 ? Number(b + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
    19. b = b.replace('.', '');
    20. b = resultNum == bSum ? b : b + (Math.pow(10, resultNum - bSum) + '').replace('1', '');
    21. return Number(b);
    22. }())
    23. return {
    24. a: inta,
    25. b: intb,
    26. num: resultNum
    27. };
    28. }
    29. const _Number: any = Number;
    30. //加法
    31. export const add = function (a: number, b: number) {
    32. var o = floatCalc(a, b);
    33. return (o.a + o.b) / Math.pow(10, o.num);
    34. }
    35. //减法
    36. export const minus = function (a: number, b: number) {
    37. var o = floatCalc(a, b);
    38. return (o.a - o.b) / Math.pow(10, o.num);
    39. }
    40. //乘法
    41. export const subtract = function (a: number, b: number) {
    42. var o = floatCalc(a, b);
    43. return (o.a * o.b) / Math.pow(10, o.num * 2);
    44. }
    45. //除法
    46. export const divide = function (a: number, b: number) {
    47. var o = floatCalc(a, b);
    48. return (o.a / o.b);
    49. }