Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2092
  • Last Modified:

Dividing a Variable in Javascript Returns NaN?

I have a calculated variable in a .js file, let's call it "Total" and I'm trying to divide it, prior to making the calculation, the division appears to be working fine. But once I run the calculation and attempt to divide the result of the "Total" variable, I get a return of NaN.

I know that this is the standard 'Not a Number" return, which confuses me seeing how the "Total" variable is defnitely and number and should therefore be divisible.

Any ideas?

Here's a cut of the code used:

"<td align=\"center\"><b>" + divide(mdRecTotalBtuh, 2) +" </b></td>" +

which calls.

function divide($a, $b )
{
   return ($a/$b);
}
0
deltex141
Asked:
deltex141
  • 8
  • 8
1 Solution
 
ideazinfiniteCommented:
try typecasting variables to integer or float depending on your inputs
0
 
ideazinfiniteCommented:
My answer was definitely the solution.
0
 
deltex141Author Commented:
After further work, it appears that as long as the variable is under 1000, the code works, however, once it's over, the NaN error appears. Which leads me to believe that the result of the divison has to be rounded to 2 decimal places (or less) to avoid the NaN error message.

That is what I need to know, how to integrate the round into the division function
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
deltex141Author Commented:
I figured out how to round it, still get the NaN error...
0
 
ideazinfiniteCommented:
try round method.. that is round(variable)
0
 
ideazinfiniteCommented:
or Math.round(var) in some cases
0
 
deltex141Author Commented:
How do i typecast a variable inside a javascript function?
0
 
ideazinfiniteCommented:
use the functions: Number(), Boolean() or String() to convert.. for example:

var n = 50; // number

var b = Boolean(n); // b is "true"
var c = Boolean(n - 50); // c is "false"
0
 
deltex141Author Commented:
Can you clarify? I'm currently using this script to perform the divison and reduce the decimal count to 2

function divide($a, $b, X) {
// rounds number to X decimal places, defaults to 2
z = ($a/$b);
X = (!X ? 0 : X);
return Math.round(z*Math.pow(10,X))/Math.pow(10,X);
}
0
 
ideazinfiniteCommented:
Try printing z after u compute it and see whether it gets the division right or wrong. try that for every variable.. and the point where u get that Nan, try convert it to string() and return.
0
 
deltex141Author Commented:
The division works fine until the $a variable goes over 4 digits, should i be converting it prior to the divide function or inside it?
0
 
deltex141Author Commented:
$a is the variable that has to be converted
0
 
ideazinfiniteCommented:
I would convert it prior to the division but then again, for the division you have to make sure that the $a is an integer that is use Number() function again to convert it back to the integer for division.

So if its four digits, round it, and then divide
0
 
deltex141Author Commented:
I've updated the code to convert the variables used (both of them) to numeric, it has not helped, here is the code used

function divide($a, $b, X){
// convert to numeric by multiplying values by 1.0
c = $a * 1.
d = $b * 1.
e = c / d
X = (!X ? 2 : X);
return Math.round(e*Math.pow(10,X))/Math.pow(10,X);

}
0
 
ideazinfiniteCommented:
How about doing it this way..
function divide($a, $b, X){
// convert to numeric by multiplying values by 1.0
c = Number($a)
d = Number($b)
e = c / d
X = (!X ? 2 : X);
return Math.round(e*Math.pow(10,X))/Math.pow(10,X);
 
}

Open in new window

0
 
deltex141Author Commented:
I solved the problem, it was not the coversion that was the problem.

The issue was that a number over 1000 would contain a comma, I had to code to remove the comma prior to the calculation.

Case Closed
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 8
Tackle projects and never again get stuck behind a technical roadblock.
Join Now