Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 值为0.3的硬编码双变量变为0.29999992_C#_Double - Fatal编程技术网

C# 值为0.3的硬编码双变量变为0.29999992

C# 值为0.3的硬编码双变量变为0.29999992,c#,double,C#,Double,在我的计算机中,当我用0.3(或其他值)的值对变量进行编码,并调试和检查变量的值时,它的值是0.2999992,但在我的朋友计算机中,它保持在0.3 //stores 0.29999992 double variable= 0.3; 是否存在配置问题或相关问题 谢谢这只是二进制浮点工作原理的一个产物。在double(或float)中无法准确表示0.3。如果您需要(例如,对于货币应用程序),请使用十进制。欢迎来到浮点数字世界。有些看似无害的数字不能用浮点表示法精确表示。使用非常接近的近似值来代

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

 //stores 0.29999992
double variable= 0.3;
是否存在配置问题或相关问题


谢谢

这只是二进制浮点工作原理的一个产物。在
double
(或
float
)中无法准确表示
0.3
。如果您需要(例如,对于货币应用程序),请使用
十进制。

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

但我们必须使用大量的数学知识。只有double才能使用小数,这是不可能的,你的建议是什么?接受你没有精确数字的事实<代码中的代码>0.3
,而不完全是
0.3
如果显示到15位左右,则仍然是
0.3
。你的计算很精确。但是为什么在我的项目中0.3显示为0.3,在我的朋友项目中显示为0.2229呢?每次都是不同的吗?