c# - C# 中的类型转换,显式转换为 int 和 Convert.ToInt32

标签 c# types

在我下面的代码中

long Price = 148920000;
long PRICE = 1000000;
double Multiplier = 100.00;
int Value = (int)(((double)Price / PRICE) * Multiplier);

我希望值是 14892,但在 C# 中它是 14891....

最佳答案

浮点运算 id 总是近似的。使用 Math.Round()、Math.Floor() 或 Math.Ceiling() 之一来控制如何将 double / float 转换为任何 int 类型。或者看看改用 Decimal。

关于c# - C# 中的类型转换,显式转换为 int 和 Convert.ToInt32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15390269/

相关文章:

c# - ASP MVC上传头像模型类

c# - 在 C# 中查看类型 T 的内部实现的可能性

python - 为什么在 python3 中不检查返回类型?

java - 调用中间泛型方法时如何保留类类型

c# - 提供重定向层的 C# 类的命名约定

c# - 你如何导航到 Metro 应用程序中的新页面?

sql - 如何在 PostgreSQL 9.4+ 中将简单的 json(b) int 数组转换为整数 []

C++ - 将类型映射到枚举

c# - xna 的基本网格?

c++ - Boost phoenix值和函数返回值类型