gpt4 book ai didi

java - 如何将大 float 转换为整数

转载 作者:行者123 更新时间:2023-11-29 05:24:31 26 4
gpt4 key购买 nike

我用javaphp 写了一个程序。其中 loop 运行 64 次。并继续添加 n 到 n:

Java 代码:

  public static void main(String[] args) {
double n = 1;
double p = 1;
for(int i = 1;i <= 64;i++){
n = n + n;
p = p + n;
}
System.out.println(p);
}

PHP代码:

<?php
$n = 1;
$p = 0;
for($i = 1;$i <= 64;$i++){
$n = $n + $n;
$p = $p + $n;
}
echo($p);

?>

这两个的输出是:

3.6893488147419E+19

现在我想知道是否可以将这个大 float 转换为 int?如果是,那么如何。两种语言。

最佳答案

我会使用 BigInteger类型,

public static void main(String[] args) {
BigInteger n = BigInteger.ONE;
BigInteger p = BigInteger.ONE;
for(int i = 1;i <= 64;i++){
n = n.add(n);
p = p.add(n);
}
System.out.println(p);
}

输出是

36893488147419103231

编辑 根据您的评论,您确实想要更像 The Legend of the Chessboard 的内容-

BigInteger n = BigInteger.ONE;
BigInteger p = BigInteger.ZERO;
BigInteger TWO = new BigInteger("2");
for (int i = 1; i <= 64; i++) {
StringBuilder sb = new StringBuilder();
sb.append("For square #: " + i);
sb.append(", Grains on square: " + n);
p = p.add(n);
n = n.multiply(TWO);
sb.append(", Running Total: " + p);
System.out.println(sb.toString());
}

关于java - 如何将大 float 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23203309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com