2 Copyright (c) 2000-2014 Ericsson Telecom AB
4 All rights reserved. This program and the accompanying materials
5 are made available under the terms of the Eclipse Public License v1.0
6 which accompanies this distribution, and is available at
7 http://www.eclipse.org/legal/epl-v10.html
11 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
12 <meta http-equiv=
"Content-Language" content=
"en-us">
15 <body bgcolor=
"#DAD3C5" vlink=
"#0094D2" link=
"#003258">
16 <table align=
"left" border=
"0" cellspacing=
"0" cellpadding=
"0" valign=top
>
18 <td width=
105 height=
40><a href=
"https://projects.eclipse.org/projects/tools.titan"><img src=
"../images/titan_transparent.gif" border=
0 width=
105 height=
40 align=
"left" alt=
"Titan"></a></td>
21 <table border=
"0" align=
"right" cellpadding=
"0" cellspacing=
"0">
23 <td><a href=
"../titan_main.html" alt=
"contents"><img border=
"0" src=
"../images/ao.jpg" width=
"53" height=
"40"></a></td>
24 <td><a href=
"../titan_index.html" alt=
"index"><img border=
"0" src=
"../images/up.jpg" width=
"53" height=
"40"></a></td>
25 <td><a alt=
"previous" href=
"false.html"><img border=
"0" src=
"../images/left.jpg" width=
"53" height=
"40"></a></td>
26 <td><a href=
"float2int.html" alt=
"next"><img border=
"0" src=
"../images/right.jpg" width=
"53" height=
"40"></a></td>
33 <hr align=
"left" width=
"75%">
34 <p>The keyword
<b><font face=
"Courier New">float
</font></b> denotes a simple basic type describing floating point numbers.
</p>
36 <li>Values of float type shall be denoted by either
38 <li>the
<a href=
"#double_quotation">normal notation
</a> with a dot in a sequence of numbers, or
</li>
39 <li>by
<a href=
"#Example 2">two numbers separated by E
</a> where the first number specifies the mantissa and the second specifies the exponent (the base is always
10).
</li>
42 <li>The
<a href=
"#quotation_inside">range of the permitted floating point values
</a> may be specified.
</li>
43 <li>The specified
<a href=
"infinity.html#quotation_inside">range may be infinite
</a> (both positive and negative; see the keyword
<a href=
"infinity.html"><b><font
44 face=
"Courier New" color=
"#003258" size=
"4">infinity
</font></b></a>).
</li>
45 <li>Another way to limit the permitted float values is
<a href=
"#list">to list them
</a>.
</li>
46 <li>Value list and value range restrictions
<a href=
"#relation">may be combined
</a></li>
47 <li>A
<a href=
"#Example 5">random floating point number
</a> may be generated using the predefined function rnd().
</li>
48 <li>Predefined function operating on floating point numbers:
</li>
50 <li><a href=
"#str2int">float2int
</a> converts a floating point number into an integer value.
</li>
53 <table border=
"0" width=
"100%" bgcolor=
"#C9C2BB" cellpadding=
"4">
56 <p> <u>TITAN specific extension to the standard:
</u></p>
59 <li><a href=
"#str2bit">float2str
</a> converts a floating point value to a character string.
</li>
65 <p>Related keyword:
</p>
67 <li><a href=
"float2int.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">float2int
</font></b></a></li>
68 <li><a href=
"float2str.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">float2str
</font></b></a></li>
69 <li><a href=
"infinity.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">infinity
</font></b></a></li>
70 <li><a href=
"int2float.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">int2float
</font></b></a></li>
71 <li><a href=
"rnd.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">rnd
</font></b></a></li>
72 <li><a href=
"str2float.html"><b><font face=
"Courier New" color=
"#003258" size=
"4">str2float
</font></b></a></li>
74 <hr align=
"left" width=
"50%">
77 <table border=
"0" width=
"90%" bgcolor=
"#FFB599" cellpadding=
"4">
80 <h3 align=
"center"><font face=
"Courier New" color=
"#003258" size=
"5"><b>float
</b></font></h3>
86 <hr align=
"left" width=
"50%">
87 <p><a name=
"double_quotation">Example
1</a>:
88 <p><font face=
"Courier New">var float v_lebeg :=
65.213;
<br>
90 <p>The variable defined is called v_lebeg and has the initial value
65.213 (with scientific notation
6.5213E1).
</p>
91 <hr align=
"left" width=
"50%">
92 <p><a name=
"Example 2">Example
2</a>:
</p>
93 <p><font face=
"Courier New">var float v_flotte :=
6521.3E-2;
<br>
95 <p>The variable defined is called v_flotte and has the initial value
6521.3E-2 (with normal notation
65.213).
</p>
96 <hr align=
"left" width=
"50%">
97 <p><a name=
"quotation_inside">Example
2</a>:
98 <p><font face=
"Courier New">var float v_territoire (
3.3 ..
7.7);
<br>
100 <p>The variable v_territoire may have values between
3.3 and
7.7 inclusive.
</p>
101 <hr align=
"left" width=
"50%">
102 <p><a name=
"list">Example
3</a>:
103 <p><font face=
"Courier New">var float v_kado (
1.2,
5E9, -
12);
<br>
105 <p>The variable called v_kado may hold the values
1.2,
5E9 and -
12 only .
</p>
106 <hr align=
"left" width=
"50%">
107 <p><a name=
"relation">Example
4</a>:
108 <p><font face=
"Courier New">var float v_kenyeer (
1.9,
7.000 ..
7.999,
11.1E1 );
<br>
110 <p>The variable v_kenyeer may hold the values
1.9,
111 and any value between
7.000 and
7.999 inclusive.
</p>
111 <hr align=
"left" width=
"50%">
112 <p><a name=
"Example 5">Example
5</a>:
</p>
113 <p><font face=
"Courier New">var float v_veeletlen := rnd (
1.9 );
<br>
115 <p>The variable v_veeletlen will have a random initial value between
0 and
1. The argument of the function is an optional seed value used for the first time random value calculation. If it is
116 omitted, the system time will be used as seed.
</p>
117 <hr align=
"left" width=
"50%">
118 <p><a name=
"str2int">Example
6</a>:
119 <p><font face=
"Courier New">const integer c_tam := float2int (
344.511E-2);
<br>
121 <p>The constant called c_tam will have the integer value
3 (the function calculates the integer value by removing the fractional part of the argument).
</p>
122 <hr align=
"left" width=
"50%">
123 <p><a name=
"str2bit">Example
7</a>:
</p>
124 <p><font face=
"Courier New">const bitstring c_recefice := float2str (
3.14);
<br>
126 <p>The constant called c_recefice will contain the character string
"3.140000" because if the input is zero or its absolute value is between
10<sup>-
4</sup> and
10<sup>10</sup> the
127 decimal dot notation is used in the output with
6 digits in the fraction part. Otherwise the exponential notation is used with automatic (at most
6) digits precision in the mantissa.
</p>
128 <hr align=
"left" width=
"25%">
129 <hr align=
"left" width=
"25%">
130 <p align=
"left"><a HREF=
"BNF.html#floatkeyword">BNF definition
</a> of
<font face=
"Courier New">float
</font><br>
131 <a HREF=
"BNF.html#floatvalue">BNF definition
</a> of float value
</p>