- Home /
match float values
Is there any way to match float values? From what I understand in searching around floats can be slightly off if they have many decimals.
But I only want to match a small number with 3 or 4 decimals. In the code below my debug.log shows 0.1090088 while I want it to be 0.109 is this possible or should I convert my versioning to an int?
var cryptCurrentVersion :float;
var floatKey :float;
function set currentVersion (value : float)
{
cryptCurrentVersion = value + floatKey;
}
function get currentVersion () : float
{
return cryptCurrentVersion - floatKey;
}
function Awake()
{
floatKey = UnityEngine.Random.Range(95.5055, 995.5055);
currentVersion = 0.109;
Debug.Log(currentVersion);
var latestVersion :float = 0.109;
if(currentVersion != latestVersion)
{
// Update game
}
}
Answer by iwaldrop · Nov 26, 2013 at 05:40 PM
You should use the Mathf.Approximately method to compare floats rather than directly comparing them.
Answer by Bluestrike · Nov 26, 2013 at 05:43 PM
Wel and sometimes the awnser hits you after you posted a question :) Adding this before the if statement seems to do the trick as now both values have the same caculation "error". not sure if this is the best way to do this tough so I leave this question open for a bit loinger.
latestVersion += floatKey;
latestVersion -= floatKey;
Answer by Kusho · Nov 26, 2013 at 05:47 PM
There is a JavaScript function called "toFixed(numberOfDecimals)" that may help you. Dunno if it works on Unity, but give it a try:
var num : float = 5.5678;
var fNum : float = 0.0;
fNum = num.toFixed(3);
Then fNum will be 5.568, i think.
Here I found a nice function with tolerance control now I konow what to search for: http://answers.unity3d.com/questions/34888/float-comparison-is-not-working.html
Your answer
Follow this Question
Related Questions
Insert a semicolon at the end Error. (JavaScript) 1 Answer
variable from int to float in javascript for loop 1 Answer
Cannot convert 'String' to 'float (but im actualy converting a float to a string) 2 Answers
Saving Object Position in Float NOT Object 1 Answer
3d text will not display float 1 Answer