我最近在java中为学校作业制作了一个标准偏差计算器,但我发现了一些双重问题。因为我希望答案尽可能准确,所以我使用了double而不是int或float,但是在很少的情况下响应很奇怪。这是一个例子:
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import Hello from './components/Hello';
ReactDOM.render(<Hello compiler="TypeScript" framework="React" bundler="webpack" />, document.getElementById('root'));
回复应为 .09,但会返回
public class tryTest
{
public static void main(String[] args)
{
double a = 0.1;
double b = 0.01;
double c = a-b;
System.out.println(c);
}
}
为什么,我应该如何解决这个问题?我是唯一有这个问题的人吗?
编辑:我确实认识到Math.floor(c * 100)/ 100会起作用,但我只是对双重原因感到困惑。