Conversions

From NSB App Studio
Jump to: navigation, search

Function

CBool(expression)

CByte(expression)

CCur(expression)

CDate(expression)

CDbl(expression)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(expression)

Description

The conversion functions return an expression that has been converted to the appropriate type. The required parameter, expression, is any valid expression.

If the return value lies outside the acceptable range of its return type, an error occurs.

Table 5: Conversion Functions

Function Returns Comments
CBool Boolean False if expression is zero True otherwise
CByte Byte A whole number that ranges from 0 to 255
CCur Currency A Currency Datum
CDate Date Date range January 1, 100 to December 31, 9999,

Valid expressions are date expressions, or date/time literals

CDbl Double Number ranges from

-1.79769313486232E308 to

-4.94065645841247E-324 for negative values, and from 4.94065645841247E-324 to 1.79769313486232E308 for positive values

CInt Integer Number ranges from -32,768 to 32,767, values with fractional parts (fp) are rounded

fp < 0.5 rounded down

fp > 0.5 rounded up

fp = 0.5 rounded to nearest even number

CLng Long Integer Number ranges from

-2,147,483,648 to 2,147,483,647, values with fractional parts (fp) are rounded

fp < 0.5 rounded down

fp > 0.5 rounded up

fp = 0.5 rounded to nearest even number

CSng Single Number ranges from

-3.403823E38 to

-1.401298E-45 for negative numbers, and from

1.401298E-45 to 3.403823E38 for positive numbers

CStr String •Booleans are converted to "True" or "False"

•Dates converted to short-date format of system

•Errors converted to "Error <number>"

•Numbers converted to string containing the number

Example (Basic)

Rem Conversion Functions Example

Print "CByte(99.44) = " & CByte(99.44)
Print "CCur(9283.066) = " & CCur(9283.066)
Print "CDate(8/18/98) = " & CDate("8/18/98")
Print "CDbl(3.141593) = " & CDbl("3.141593")
Print "CInt(3.141593) = " & CInt("3.141593")
Print "CSng(10) = " & CSng(10)
Print "CStr(TRUE) = " & CStr(TRUE)
Print "CInt(""&h100"") = " & CInt("&h100")

Example (JavaScript)

//Conversion Functions Example

TimeValue = function(tm) {
  var dtm = new Date("1/1 "+tm); //needs to be date time format
  var ampm = (tm.toUpperCase().indexOf('AM') > -1) ? ' AM' : ' PM';
  hr = dtm.getHours();
  if (hr < 12) {
    ampm = ' AM';
  } else if (hr > 12) {
    ampm = ' PM';
    hr -= 12;
    if (hr==12) ampm = ' AM'; //midnight
  }
  mn = '0'+dtm.getMinutes();
  mn0 = mn.substr(mn.length-2,2);
  ss = '0'+dtm.getSeconds();
  ss0 = ss.substr(ss.length-2,2);
  return hr+':'+mn0+':'+ss0+ampm;
}
CDate=function(val) {
  if (val.indexOf(':') > -1) { //time
    var valt = TimeValue(val);
  } else { //date
    var vald = new Date(val);
    mon=vald.getMonth()+1;
    dy='0'+vald.getDate();
    dy = dy.substr(dy.length-2,2);
    yr=vald.getFullYear();
    return mon+'/'+dy+'/'+yr;
  }
}
NSB.Print("CByte(99.44) = " + Math.round(99.44) + "<br>");
NSB.Print("CCur(9283.066) = " + parseFloat(9283.066).toFixed(4));
NSB.Print("CDate(8/18/98) = " + CDate("8/18/98"));
NSB.Print("CDbl(3.141593) = " + parseFloat("3.141593"));
NSB.Print("CInt(3.141593) = " + parseInt("3.141593"));
NSB.Print("CSng(10) = " + parseFloat(10));
NSB.Print("CStr(TRUE) = " + (true).toString());
NSB.Print('CInt("&h100") = ' + parseInt("0x100"));

Output

CByte(99.44) = 99
CCur(9283.066) = 9283.066
CDate(8/18/98) = 8/18/1998
CDbl(3.141593) = 3.141593
CInt(3.141593) = 3
CSng(10) = 10
CStr(TRUE) = True
CInt("&h100") = 256

Related Items

Is, Number