This one is making me scratch my head.
Here’s what I have:
Current = 123456.78f;
Money = Current.ToString("F2");
print("c: "+Current+" m: "+Money);
The output is:
c: 123456.8 m: ‘123456.80’
Why is this number getting rounded up? I’m not doing ANYTHING to round it. I want both digits past the decimal point, exactly as they are. Help!
I think it’s just floating point precision. If you just do this:
float f = 123456.78f
Debug.Log(f);
It also just outputs 123456.8
.
If you want better precision, use double.
For money, which needs to be exact, use integers / fixed point arithmetic , the last two digits being cents. For example, 123456.78
as an integer would simply be 12345678
.
2 Likes
TheWebExpert:
Decimal datatype is used for currency
1 Like