Forums
Hi,
I have customized the drupal module Calculator (which is a simple calculator) to get a scientific calculator.Sin, Cos, Log and tan are working fine but power function is not working.Please help me find the working code for that function.Here is the code:
/** * Display calc */
jQuery(document).ready(function() { jQuery("#calc-wrapper").show();
});
/** * Form variable to perform operations on calc form. */
var form = document.getElementById("calc-generate-calculator");
/** * To store last calculated value. */
var x = 0;
/** * To check the operation req. whether +,-,*,/ or =. */
var ops = "n";
/** * To check if result values needs to be reset or not. */
var token = 0;
/** * Function to return result for the operation performed on calc. */
function calc(op) { if (op == "1" || op == "2" || op == "3" || op == "4" || op == "5" || op == "6" || op == "7" || op == "8" || op == "9" || op == "0" || op == ".") { if (!token) { if (form.calc_result.value == 0) { form.calc_result.value = op; } else { form.calc_result.value = form.calc_result.value + op; } } else { form.calc_result.value = op; token = 0; } return; }
if (op == "C") { form.calc_result.value = 0;
x = 0;
token = 0;
return;
}
if (op == "%") { form.calc_result.value = form.calc_result.value / 100.0;
token = 1;
return;
}
/* if (op == "sin") { form.calc_result.value = Math.sin (form.calc_result.value) ;
token = 1;
return;
} */ if (op == "sin") { form.calc_result.value = Math.sin (form.calc_result.value) ;
token = 1;
return;
} if (op == "cos") { form.calc_result.value = Math.cos (form.calc_result.value) ;
token = 1;
return;
} if (op == "tan") { form.calc_result.value = Math.tan (form.calc_result.value) ;
token = 1;
return;
} if (op == "log") { form.calc_result.value = Math.log (form.calc_result.value) ;
token = 1;
return;
} if (op == "+/-") { form.calc_result.value = -form.calc_result.value;
token = 1;
return;
}
if (op == "1/x") { if (form.calc_result.value != 0) { form.calc_result.value = 1 / form.calc_result.value; } else { form.calc_result.value = 1 / form.calc_result.value; }
token = 1;
return;
}
if (op == "+" || op == "-" || op == "*" || op == "/" || op == "pw" || op == "=" ) { token = 1;
if (ops != "n") { if (ops == "+") { x = x -(- form.calc_result.value); form.calc_result.value = x; } if (ops == "-") { toFixedVal = 0; if (form.calc_result.value.indexOf(".") != -1) { toFixedVal = (x.length > form.calc_result.value.length) ? ((x.split(".")[1] > 0) ? x.split(".")[1].length : 0) : ((form.calc_result.value.split(".")[1] > 0) ? form.calc_result.value.split(".")[1].length : 0); x = x - form.calc_result.value; x = x.toFixed(toFixedVal); } else { x = x - form.calc_result.value; } form.calc_result.value = x; } if (ops == "/") { if (x > 0) { x = x / form.calc_result.value; form.calc_result.value = x; } } if (ops == "*") { if (x > 0) { x = x * form.calc_result.value; form.calc_result.value = x; } if (ops == "pw") { if (x > 0) { form.calc_result.value = Math.pow(x,form.calc_result.value); form.calc_result.value = x; } } }
}
else { x = form.calc_result.value;
}
if (op != "=") { ops = op;
}
else { ops = "n";
}
return;
}
}
Hi adon,
Yes, it is OK ! Thanks