我正在尝试转换指数数字 1.11111117E+9,它实际上是一个 10 位数字“1111111111”。当我尝试使用 decimal.TryParse 方法转换此指数时,它会将最后 3 位数字设为零并将数字设为“ 111111000 ”。任何 10 位数字都会发生这种情况。
decimal amount;
decimal.TryParse("1.11111117E+9", NumberStyles.Any, null, out amount);
这很奇怪,但我无法弄清楚这里有什么问题,有人可以告诉我这有什么问题吗?
编辑: 对不起,误导性的问题。正如Henrik在他的回答中提到的那样,这正是我所面临的。
float f = 1111111111;
string s = f.ToString();
decimal amount;
decimal.TryParse(s, NumberStyles.Any, null, out amount);
这将始终返回 1111111000?如何解决此问题以获得正确的值?从浮点数据类型将其更改为 Double 或 Decimal 是解决方案还是其他?