/adei/ui

To get this branch, use:
bzr branch http://darksoft.org/webbzr/adei/ui

« back to all changes in this revision

Viewing changes to js/math.js

  • Committer: Suren A. Chilingaryan
  • Date: 2008-10-30 01:27:40 UTC
  • mto: This revision was merged to the branch mainline in revision 116.
  • Revision ID: csa@dside.dyndns.org-20081030012740-svt0yigxj5uzwxyj
Few steps on source tree integration in javascript frontend

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function adeiMathPreciseSubstract(a, b) {
 
2
    var ra, rb;
 
3
    var astr = a.toString();
 
4
    var bstr = b.toString();
 
5
 
 
6
    var pos = astr.indexOf(".");
 
7
    if (pos < 0) ra = 0;
 
8
    else ra = parseFloat("0." + astr.substr(pos + 1));
 
9
 
 
10
    pos = bstr.indexOf(".");
 
11
    if (pos < 0) rb = 0;
 
12
    else rb = parseFloat("0." + bstr.substr(pos + 1));
 
13
 
 
14
    if ((ra)||(rb)) {
 
15
        var ia = Math.floor(a);
 
16
        var ib = Math.floor(b);
 
17
 
 
18
        var r = ra - rb;
 
19
        if (r < 0) {
 
20
            var rstr = (r+1).toString();
 
21
            pos = rstr.indexOf('.');
 
22
            return (ia - ib - 1).toString() + rstr.substr(pos);
 
23
        } else if (r > 0) {
 
24
            var rstr = r.toString();
 
25
            pos = rstr.indexOf('.');
 
26
            return (ia - ib).toString() + rstr.substr(pos);
 
27
        } else return ia - ib;
 
28
    } 
 
29
    return a - b;       
 
30
}
 
31
 
 
32
function adeiMathPreciseAdd(a, b) {
 
33
    var ra, rb;
 
34
 
 
35
    var astr = a.toString();
 
36
    var bstr = b.toString();
 
37
    
 
38
    var pos = astr.indexOf(".");
 
39
    if (pos < 0) ra = 0;
 
40
    else ra = parseFloat("0." + astr.substr(pos + 1));
 
41
 
 
42
    pos = bstr.indexOf(".");
 
43
    if (pos < 0) rb = 0;
 
44
    else rb = parseFloat("0." + bstr.substr(pos + 1));
 
45
 
 
46
    if ((ra)||(rb)) {
 
47
        var ia = Math.floor(a);
 
48
        var ib = Math.floor(b);
 
49
 
 
50
        var r = ra + rb;
 
51
        if (r > 1) {
 
52
            var rstr = r.toString();
 
53
            pos = rstr.indexOf('.');
 
54
            return (ia + ib + 1).toString() + rstr.substr(pos);
 
55
        } else if (r < 1) {
 
56
            var rstr = r.toString();
 
57
            pos = rstr.indexOf('.');
 
58
            return (ia + ib).toString() + rstr.substr(pos);
 
59
        } else return ia + ib + 1;
 
60
    } 
 
61
    return a + b;       
 
62
}
 
63