我有一个类似的双精度数字223.45654543434
,我需要把它显示为0.223x10e+2
。
如何用Java做到这一点?
System.out.println(String.format("%6.3e",223.45654543434));
结果是
2.235e+02
这是我最接近的。
问题内容: 我有以下代码,该代码将数字字符串拆分(由空格分隔),然后创建一个float数组: 问题是字符串中的某些值使用科学计数法格式化-例如,它们读取为-3.04567E-8。 我想做的是最后得到一个不包含E号的浮点数。 问题答案: 下面是您的代码略有修改。按照我的说法,这很好用,实际上并不在乎他的指数顺序:
一位电气工程师最近告诫我不要将GPU用于科学计算(例如,在精度非常重要的情况下),因为它没有像CPU那样的硬件保障。这是真的吗?如果是的话,这个问题在典型的硬件中有多普遍/多严重?
问题内容: 我想四舍五入: 至: 我已经使用了这两种方法: 和 但它一直在打印: 有人对此有解决方案吗?因为我真的认为这应该可行。谢谢你的帮助。 问题答案: 您的第一个解决方案确实非常接近。只是这样做: 您的版本无法正常运行的原因是,您使用了double格式,使用2dp将其格式化为,然后又将其转换回了。 然后照常打印,没有特殊的小数位规则。
问题内容: 是一个字符串,而%d是一个小数,我想…但是放入时 ..引发异常,告诉我!= lang.double。有想法吗? 问题答案: 是供整数使用的,它同时适用于和类型:
问题内容: java中双值的乘法运算符的保证精度是多少? 例如,2.2 * 100是220.00000000000003,但是220是双精度数。220.00000000000003是220之后的下一个两倍。 问题答案: 乘法工作正常,但不能精确表示为双精度。最接近的双打是: 2.199999999999999733(0x4001999999999999) 2.200000000000000177(
我有一系列这样的数据:100 Mbps,200 Mbps,512 Kbps,256 Kbps,100 Mbps, 我需要标准化所有必须在“Mbps”单元中的数据。我正在使用Jaspersoft的ETL软件,该软件允许输入表达式来转换数据。每个数据将被分成两个变量,一个用于存储单位(speedunit),另一个用于存储值(speedvalue),类型为Double。现在,我使用以下表达式: 问题是,