关于c#:具有0.3值的硬编码双变量变为0.299999992

hardcoded double variable with 0.3 value turns into 0.299999992

本问题已经有最佳答案,请猛点这里访问。

在我的计算机中,当我用0.3(或者其他值)对一个变量进行编码,并调试和检查该变量的值时,它的值是0.29999992,但在我的朋友的计算机中,它保持在0.3。

1
2
 //stores 0.29999992
double variable= 0.3;

是否存在配置问题或相关问题?

谢谢


这只是一个二进制浮点工作方式的人工制品。在double中(或在float中),无法准确地表示0.3。如果您需要(例如用于货币应用),请使用decimal


欢迎来到浮点数的世界。有些看似无害的数字不能用浮点符号精确表示。而是使用非常接近的近似值。