Assume :-
List<double> countTime = new List<double>();
void Update()
{
countTime.Add(Time.deltaTime);
}
void printAllNumbersWithOnly2Decimals()
{
for(int i=0; i<countTime.Count; i++)
{
if(*numbers have 2 decimals in it*)
then display it;
}
}
Another example is arr[4] = {1.22, 1.333, 2.333, 2.22};
How to print only {1.22}, {2.22}?
I am by no means an expert or a computer scientist. So my explanation may be misleading or incorrect, but I will try to explain to the best of my ability.
One thing about floating point notation is that floats and doubles will never, or rarely only have 2 decimal places. Even if you set a double to 1.22, it may be stored in memory differently, It’s possible that the value will be stored as 1.22000000000001 instead. So this is something that needs to be considered.
//if numbers have 2 decimals in it then display it
void printAllNumbersWithOnly2Decimals()
{
for(int i=0; i<countTime.Count; i++)
{
double difference = countTime _- double.Parse(countTime*.ToString("0.00"));*_
_ if (difference < 0) difference = -1; //Mathf.Abs() substitute_
_ if (difference <= double.Epsilon)_
_ {_
_ Debug.Log("Number: " + countTime + " has 2 decimal places");
}
}
}*_
@ tapirlaut man you have blowed up my mind i been working all day long till i found out the way :
double [] countTime = new double[]{1.1,1.22,1.333,44} ;
void Start ()
{
printAllNumbersWithOnly2Decimals ();
}
void printAllNumbersWithOnly2Decimals()
{
for(int i =0; i<countTime.Length;i++)
{
string e = countTime *.ToString ();*
-
if (e.Contains(".") && e.IndexOf(".") >= e.Length-3) //delete the > sine if you want only 2 decimal places but don't delete it if you want also 1 decimal places.*
-
{*
-
print (e);*
-
}*
-
else if(!e.Contains(".")) // make sure printing numbers that don't have decimal places delete if not necessary.*
-
{*
-
print (e);*
-
}*
-
}*
- }*