草庐IT

double-double-arithmetic

全部标签

java - 如何防止 gson 将整数转换为 double

我的json中有整数,我不希望gson将它们转换为double。以下不起作用:@TestpublicvoidkeepsIntsAsIs(){Stringjson="[{\"id\":1,\"quantity\":2,\"name\":\"apple\"},{\"id\":3,\"quantity\":4,\"name\":\"orange\"}]";GsonBuildergsonBuilder=newGsonBuilder();gsonBuilder.registerTypeAdapter(Double.class,newDoubleSerializerAsInt());Gsongso

java - 在java中截断一个 float 和一个 double

这个问题在这里已经有了答案:HowtoroundanumbertondecimalplacesinJava(39个答案)关闭去年。我想在java中截断一个float和一个double值。以下是我的要求:1.如果我有12.49688f,它应该打印为12.49而不四舍五入2.如果double是12.456,打印成12.45不四舍五入3.在任何情况下,如果值类似于12.0,则应仅打印为12。条件3要始终牢记,它应该与截断逻辑并发。

double 的 Java ArrayList

有没有办法定义ArrayList与double类型?我都试过了ArrayListlist=newArrayList(1.38,2.56,4.3);和ArrayListlist=newArrayList(1.38,2.56,4.3);第一段代码表明构造函数ArrayList(double,double,double)未定义,第二个代码显示double之后需要维度. 最佳答案 试试这个:Listlist=Arrays.asList(1.38,2.56,4.3);返回一个固定大小列表。如果您需要一个可扩展列表,将此结果传递给ArrayLi

java - Gson 强制使用 int 而不是 double

你好我可以配置gson他使用int而不是doublegot数据如:{fn:chat,data:{roomId:1,text:"Somebrabble"}}我有一个PacketClass将其反序列化为:publicclassDataPacket{privateStringfn;privateObjectp;//willbeaStringMap}并像这样解码:DataPacketpkg=gson.fromJson(message,DataPacket.class);为了更好的类型处理,我得到了DataPacket.p字段的数据pojo,例如:publicclassChatPacket{pu

java - 输出打印预初始化的 Java double 与 inline 的区别

在将构建从Java1.6升级到1.7时,我们的单元测试开始失败,因为这两个版本处理double打印尾随零的方式不同。这可以用这个例子重现:doublepreInit=0.0010d;System.out.println("pre-init:"+preInit);System.out.println("inline:"+0.0010d);Java1.6将输出:pre-init:0.0010inline:0.0010Java1.7将输出:pre-init:0.001inline:0.0010我有两个问题:为什么内联连接的打印与具有预初始化值的相同连接不同?Java1.6和1.7之间的哪些变

java - Java 7 允许从 Number 转换为 double 吗? (自动装箱)

一位同事检查了这段代码:Numbern=...;doublenr=n==null?0.0:(double)n;然后另一位同事提示说这没有编译,这正是我所期望的。然而,事实证明我已经从SVN中提取了这段代码并且一切正常。我们都在eclipse中将Java版本设置为1.7,结果代码在eclipse4.4.2(Luna)下编译正常,但在4.2.2下编译失败。我通过将转换替换为n.doubleValue()解决了这个问题。现在真正的问题是:为什么这首先会被接受?它当然应该在转换为Double而不是double时起作用,但我认为直接从Number转换为double被禁止。那么,这是同时修复的ec

java - 重新审视 IEEE-754 double (64 位浮点)与长整型(64 位整数)

我正在重新审视一个问题(Howtotestifnumericconversionwillchangevalue?),据我所知,这个问题已经完全解决了。问题是检测特定数值何时会溢出JavaScript的IEEE-754数字类型。上一个问题使用的是C#,标记的答案非常有效。现在我正在做完全相同的任务,但这次是在Java中,但它不起作用。据我所知,Java使用IEEE-754作为其double数据类型。所以我应该能够来回转换它以迫使精度损失但它往返。对此感到困惑,我开始深入研究Java,现在我真的很困惑。在C#和Java中,long的最小值和最大值是相同的:longMIN_VALUE=-92

java - Java 中的 Polygon.Double 在哪里?

我又一次在做Java图形(Graphics2D),但我注意到没有Polygon.Double或Polygon.Float类,而有Rectangle2D.Float和Rectangle2D.Double类。有人知道这是为什么吗?我只需要使用double作为点绘制一个三角形。 最佳答案 您可以使用Path2D(或Path2D.Float或Path2D.Double)以获得相同的效果。 关于java-Java中的Polygon.Double在哪里?,我们在StackOverflow上找到一个类

java - 在 java 中将 double 分成两部分 "integer & fraction"的最佳方法是什么

我试过通过以下方法分离5.6(例如):privatestaticdouble[]method(doubled){intintegerPart=0;doublefractionPart=0.0;integerPart=(int)d;fractionPart=d-integerPart;returnnewdouble[]{integerPart,fractionPart};}但是我得到的是:[0]=5.0[1]=0.5999999999999996关于在不将数字转换为字符串的情况下执行此操作,您有什么建议吗? 最佳答案 使用BigDec

Java - Decimal Format.parse 以返回具有指定小数位数的 double 值

我希望能够将字符串转换为Double,给定格式字符串中的小数位数。所以“###,##0.000”应该给我Double到小数点后3位。编辑-为发生的事情添加了更多信息用户在UI中输入值-该值被输入到一个字符串中。规则是此值限制为小数点后3位。底层代码将值存储在数据库中,然后用于计算。因此,尾随小数位会导致计算结果略微超出预期。我有以下代码:try{//outputcurrentlocalewearerunningunder(thishappenstobe"nl_BE")System.out.println("CurrentLocaleis"+Locale.getDefault().toS