栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将BigInteger转换为科学记数字符串并返回?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将BigInteger转换为科学记数字符串并返回?

最简单的方法是使用a

BigDecimal
解析或输出科学计数法字符串。

您可以执行以下操作:

BigDecimal bd = new BigDecimal("1.86E+6");BigInteger bi = bd.toBigInteger();

并反向:

bd = new BigDecimal(bi);String s = bd.toString();

更新资料

如果需要更多用户定义的输出,则可以使用

NumberFormatter
。不要忘记设置
Locale
喜欢的东西
Locale.ROOT
,所以你不会得到,说逗号作为小数点分隔符(这是我第一次了,在德语区域)。例:

    // Create a large, ugly number.    BigInteger bi = BigInteger.valueOf(1001).pow(345);    // Convert to scientific notation using invariant Locale.ROOT    NumberFormat formatter = new DecimalFormat("0.######E0", DecimalFormatSymbols.getInstance(Locale.ROOT));    String str = formatter.format(bi);    System.out.println(bi);    System.out.println();    System.out.println(str);    // No need for a formatter here.    BigDecimal bd = new BigDecimal(str);    BigInteger output = bd.toBigInteger();    System.out.println();    System.out.println(output);

输出为:

14117465346422473869266828956536055055941560076453195848564549858245769090306511724022581458806808478312104648299184900101668110790029727269370576230739941295756403721542377676524345471018858301889587238685728698833657381433536351514768807473443480107060729865351857489829644237936941400858917912209727918821783232356498771195545416635992957878247457113883101655879913418071605117410760297684042828778561159429065368661891812555141973374185979366443907302175257231152310141478498874460404449693368849061582935212917481342173140058899494843206027203717899148936397952548848005208731916971590412805910464039282903509485053887030367122265061366423059607167641248369473629327204185542901959950021142336751965432334025473575773873368059728429867664163814317270780442331398766129832060513718517733918824279296013116955756603712271052363752137824695133499530175242999263226173240528036345762831538788960937393158730952609718119678289412196511493705666398394024980881857214329574087466691591070500356867121745486580017771495712789545993403450011.411747E10351411747000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

(是的,BigIntegers可能很笨拙)。

我不知道您的价值有多大,但是以上这些在我的Mac上都能正常使用。当然,只用十进制数字表示的科学计数法会损失很多精度。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号