在JavaScript、C#和Java中,如何让30%减去20%返回10%?

在JavaScript、C#和Java中,如何让30%减去20%返回10%?,java,javascript,c#,Java,Javascript,C#,以下代码导致我的游戏应用程序出现奇怪的行为!我在一些现代语言(如Java C)中尝试了相同的代码,下面是JavaScript版本 var x = .3 - .2, y = .2 - .1, areEqual= (x == y), xIsDotOne = x == .1, yIsDotOne = y== .1; areEqual为假,xIsDotOne为假,但yIsDotOne为真 那么如何让它们返回准确的值呢?你不能;与误差幅度相比

以下代码导致我的游戏应用程序出现奇怪的行为!我在一些现代语言(如Java C)中尝试了相同的代码,下面是JavaScript版本

   var x = .3 - .2,
       y = .2 - .1,
       areEqual= (x == y),
       xIsDotOne = x == .1,
       yIsDotOne = y== .1;
areEqual
为假,
xIsDotOne
为假,但
yIsDotOne
为真


那么如何让它们返回准确的值呢?

你不能;与误差幅度相比。欢迎使用浮点数字。C#/Java中的浮点数字精度读取FWIW:Double和JavaScript中的数字使用相同的底层表示(64位IEEE 754“doubles”)。我希望他们对这个特殊的案例都有相同的结果。