【发布时间】:2022-01-09 08:20:57
【问题描述】:
查看此代码:
public static void Main()
{
float test = 1.8f;
Console.WriteLine(test); // 1.8
int intTest = (int)(test * 100);
Console.WriteLine(intTest); // expected result: 180, but it's 179???
float test2 = test * 100;
int intTest2 = (int)test2;
Console.WriteLine(intTest2); // 180 ??
}
https://dotnetfiddle.net/R6u4wA
在 .Net 4.7 中,如果您在转换的同一行中进行计算与先进行计算、将其存储在浮点变量中然后将其转换为整数,那么从 int 到 float 的转换会有所不同。
在 .Net 6 中这很好,但我使用的是 Unity,所以我无法更改编译器。
这是如何解释的?解决此问题的最佳方法是什么?
感谢任何指针!
【问题讨论】:
标签: string type-conversion integer