parseNumber: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
(Added more details about parsing hex numbers)
 
(80 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma |= Game name
|game1= arma1
|version1= 1.00


|1.00|= Game version
|game2= arma2
____________________________________________________________________________________________
|version2= 1.00


| Parse string containing real number. |= Description
|game3= arma2oa
____________________________________________________________________________________________
|version3= 1.50


| [[Number]] <nowiki>=</nowiki> '''parseNumber''' string |= Syntax
|game4= tkoh
|version4= 1.00


|p1= string: [[String]] |= Parameter 1
|game5= arma3
|version5= 0.50


| [[Number]] |= Return value
|gr1= Strings
____________________________________________________________________________________________
 
|x1= _number <nowiki>=</nowiki> '''parseNumber''' "0.125" |= Example 1
____________________________________________________________________________________________


| |= See also
|descr= Parses the string, interpreting its content as a floating point number.
{{Feature|important|This command does '''not''' work with strings representing hexadecimal numbers (e.g {{hl|"0xCF"}}).
<sqf>
parseNumber "512 + 0x2F"; // 512, WRONG!
"512 + 0x2F" call BIS_fnc_parseNumber // 559, CORRECT!
</sqf>}}
{{Feature|informative|Starting whitespaces are discarded, then as many valid characters are used to be interpreted as a number until an invalid character is found then the rest of the string is ignored.}}


}}
|s1= [[parseNumber]] value
 
|p1= value: [[String]] or {{GVI|arma3|1.50|size= 0.75}} [[Boolean]]
 
|r1= [[Number]] - the parsed number, {{hl|0}} if no valid number was found; in the case of a passed [[Boolean]], 0 if [[false]], 1 if [[true]]


<h3 style="display:none">Notes</h3>
|x1= <sqf>
<dl class="command_description">
_number = parseNumber "0.125"; // 0.125
<!-- Note Section BEGIN -->
_number = parseNumber "0050"; // 50
* If the text does not represent a number ("abc" for example), parseNumber will return 0 (zero). It is therefore not possible to use parseNumber to determine if the string contains a valid number or not.
_number = parseNumber " 42 yes"; // 42
_number = parseNumber "3 or 4"; // 3
_number = parseNumber "either 3 or 4"; // 0
_number = parseNumber "0xCF"; // 0
</sqf>


* Super useful, if you have a value being passed through an .sqf to another and it is a number, it will read it as a string.  Use parseNumber to make it a number again!
|x2= since {{arma3}} v1.50:
<!-- Note Section END -->
<sqf>
</dl>
_result = parseNumber false; // 0
_result = parseNumber true; // 1
_zeroOneStatus = parseNumber alive player; // 0 if the player is dead, 1 if alive
</sqf>


<h3 style="display:none">Bottom Section</h3>
|seealso= [[BIS_fnc_parseNumber]] {{Link|http://www.cplusplus.com/reference/cstdlib/atof/|atof (C++)}} [[Floating Point Number#Floating Point Literals|Floating point literals]]
[[Category:Scripting Commands|PARSENUMBER]]
}}
[[Category:Scripting Commands ArmA|PARSENUMBER]]
[[Category:Command_Group:_Variables|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]

Latest revision as of 11:39, 10 May 2024

Hover & click on the images for description

Description

Description:
Parses the string, interpreting its content as a floating point number.
This command does not work with strings representing hexadecimal numbers (e.g "0xCF").
parseNumber "512 + 0x2F"; // 512, WRONG! "512 + 0x2F" call BIS_fnc_parseNumber // 559, CORRECT!
Starting whitespaces are discarded, then as many valid characters are used to be interpreted as a number until an invalid character is found then the rest of the string is ignored.
Groups:
Strings

Syntax

Syntax:
parseNumber value
Parameters:
value: String or Arma 3 logo black.png1.50 Boolean
Return Value:
Number - the parsed number, 0 if no valid number was found; in the case of a passed Boolean, 0 if false, 1 if true

Examples

Example 1:
_number = parseNumber "0.125"; // 0.125 _number = parseNumber "0050"; // 50 _number = parseNumber " 42 yes"; // 42 _number = parseNumber "3 or 4"; // 3 _number = parseNumber "either 3 or 4"; // 0 _number = parseNumber "0xCF"; // 0
Example 2:
since Arma 3 v1.50:
_result = parseNumber false; // 0 _result = parseNumber true; // 1 _zeroOneStatus = parseNumber alive player; // 0 if the player is dead, 1 if alive

Additional Information

See also:
BIS_fnc_parseNumber atof (C++) Floating point literals

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note