How to identify 2 decimal places?
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}?
any moderator please post my question in public view...its been almost 24 hours
Answer by Jessespike · Mar 14, 2016 at 05:31 PM
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[i] - double.Parse(countTime[i].ToString("0.00"));
if (difference < 0) difference *= -1; //Mathf.Abs() substitute
if (difference <= double.Epsilon)
{
Debug.Log("Number: " + countTime[i] + " has 2 decimal places");
}
}
}
Answer by Ali-hatem · Mar 14, 2016 at 06:05 PM
@ 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 [i].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);
}
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612071505im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Problem with using decimals as primary number 0 Answers
UI Text to Decimal. How? 3 Answers
Why the decimals change when I move away from the object? 0 Answers
Float without comma 1 Answer
Calculate exact time passed after two decimal point (ex: 0.2143) 0 Answers