草庐IT

Double-precision_floating-point_f

全部标签

java - 将波形( float 组)作为声音播放

我有一个波形,表示为从-1到1的float数组。是否可以将此波形作为重复声音播放?我发现了很多从数组中播放音频的例子,但都与字节数组有关,并且需要一些非常复杂的代码。 最佳答案 在不太了解的情况下,您为什么不直接为值分配一个范围,然后逐个音调地播放这个范围。-1...150Hz...20,000Hz你可以很容易地这样计算://inputisthefloatarrayintminPitch=50;intmaxPitch=20000;intpitch=(int)((input[idx]+1)*((maxPitch-minPitch)/2

java - XML/Java : Precise line and character positions whilst parsing tags and attributes?

我正在尝试找到一种在解析XML文档时精确确定标签和属性的行号和字符位置的方法。我想这样做,以便我可以准确地向XML文档的作者(通过Web界面)报告文档无效的地方。最终我想将a中的插入符号设置为无效标记或仅在无效属性的左引号内。(此时我没有使用XML架构,因为属性的确切格式很重要,无法单独通过架构进行验证。我什至可能希望报告某些属性在属性值的中途无效。或类似地,在开始和结束标记之间的文本中途。)我试过使用SAX(org.xml.sax)和Locator接口(interface)。这在一定程度上有效,但还远远不够好。它只会在一个事件之后报告阅读位置;例如,对于startElement(),

java - 如何获得唯一确定给定 double 的 "shortest"BigDecimal

基本上,我很好奇如何在不经历创建字符串的过程的情况下获取newBigDecimal(Double.toString(d))。documentationforDouble.toString非常复杂(也很有趣)。据我了解,该方法实际上并不返回给定double实际表示的数字的字符串表示形式,而是返回唯一标识给定double的(附近)最短实数的字符串表示形式.(我实际上并不需要这个。如果我这样做了,我可能无论如何都会通过一个字符串。我只是对这个找到这个“短”实数的算法感到好奇唯一确定给定的double值。)(这是关于thisquestion的后续问题。) 最佳答案

java - 矩形类函数 getX()、getY() 等以 double 返回

嗯,根据我的经验和OracleJavaAPI文档,我知道他们这样做,但我想知道为什么。通过构造函数,我只允许将int类型的参数传递给Rectangle类,x、y等的内部数据表示是类型int和setSize()仅排除int类型的参数。但是,为什么所有方法,如getX()、getY()、getWidth()等,在没有精确?为什么不像预期的那样简单int?编辑:我知道它是从Rectangle2D类派生的,但是仍然没有理由不提供任何基于int的getX()和getY()函数,与Point和Point2D类不同,这些方法不是抽象的。此外,setLocation()也不是抽象的。

java - Float.equals(几乎)完全没用,我应该用什么代替?

考虑到:==shouldneverbeusedtocomparedoubles/floatsitappearsfromthedocsthat(beyondsometype-checkingandcheckingagainstNaN)that'sallthatDouble/Float.equalsdoes看起来Float.equals的当前形式几乎完全没用。我是不是遗漏了什么,或者在某些时候使用Float.equals是合适的,除非在极少数情况下您想要测试二进制相等性?如果是这样,真正是否已经完成了滚动您自己的identikitepsilon函数(如第一个链接中所建议的那样),或者是否存

java - 使 GSON 将数字反序列化为整数或 double

我在GSON上遇到了困难。我有一个简单的JSON,我想反序列化为Map.对我来说,123应该解析为int(或long),123.4应该解析为float(或double),这真的很直观。另一方面,GSON一直在创建double。我可以告诉GSON不要一直滥用double吗?我的实际代码:TypemapType=newTypeToken>(){}.getType();GSONgson=newGson();Mapmap=gson.fromJson(someString,mapType); 最佳答案 以下代码可以编译并运行:packaget

java - 为什么 java.awt.Point 提供设置和获取 double 值的方法,但将 x 和 y 存储为 int 值?

正如您在java.awt.Point的Oracle文档中看到的那样,x和y存储为int。但是,getX和getY返回double。虽然有一个setLocation方法接受2个double类型,但没有构造函数这样做。此外,无论如何,double都会在内部被截断为int。这有充分的理由吗?您可以通过使用采用double类型的方法来避免对setLocation进行强制转换,但是当您调用getX和getY。通过从getX和getY返回double,也存在对Point类精度的错误表述。 最佳答案 因为它继承自Graphics2D抽象类中使用的

java - Java : what's the point? 中的 Thread.interrupt()

这个问题在这里已经有了答案:JavalongrunningtaskThreadinterruptvscancelflag(5个答案)关闭9年前。我完全理解它的作用(至少我希望如此)。它并没有真正中断线程。它使Thread.isInterrupted()为真,代码应该检查是什么方法并停止线程本身。我的问题是,为什么我们甚至需要这种方法?它似乎完全可以通过声明一个boolean标志来说明是否应该停止这个线程来替换?没有任何Java教科书使用这个boolean标志作为应如何使用volatile关键字的最佳示例吗?我特别困惑,因为似乎没有办法“不中断”线程,因为Thread.resume()已

java - 在 Java 中,如果在操作中使用 Double.NaN 会发生什么情况?

我编译的代码错误地尝试添加一个数字和Double.NaN。我想知道它是否抛出了一个没有被捕获的异常?有谁知道这种情况是如何处理的?谢谢。 最佳答案 将一个数加到NaN得到NaN。预计不会导致异常。我了解这符合IEEE754。 关于java-在Java中,如果在操作中使用Double.NaN会发生什么情况?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/362958/

java - 将 float 从 .NET 发送到 Java 并返回的最佳方法

我正在编写一个.NET应用程序,它将对Java应用程序进行RPC调用(通过消息队列)。双向发送的数据将是大型float数组。序列化它们以通过网络发送它们的最佳方法是什么?我想要比文本更紧凑的东西,但与体系结构无关,因为服务器可能不是x86机器。可以根据需要更改Java应用程序。 最佳答案 Java数字基元实际上是按网络顺序存储(在JVM中)和写入(通过jnava.io.DataOutputStream和java.nio.ByteBuffer)和float点值是IEEE标准。它们可以直接与C#/.NET互换。好吧,如果.NET提供网络