好的,我的任务是生成一个数组,用正常频率生成一个正弦波。 这是我的正弦函数:Java Math.sin()无法按预期工作
Math.sin(frequency*(j/samplesPerSecond)*Math.PI*2)
j
是数组索引和samplesPerSecond
等于44100
现在10万个值的数组返回的第33 000 1.571509 ... E-14 0.0对于未来的33,000和3.143018 ... E-14。
我试过System.out.println(Math.sin(Math.PI));
,它不返回0,但它返回1.224646 ... E-16
这是我的第一个Java任务,所以我会在这里可以俯瞰东西真的很明显,但我真的很困惑。
什么是J和samplesPerSecond的类型? – AbhinavRanjan
请注意'1.2246467991473532E-16'非常接近'0'。 'Math.sin(Math.PI))'只受'double'精度的限制。 –
j和samplesPerSecond是整数。一个类型转换帮助我。 – Marv