【问题标题】:How can I prevent floats and doubles from getting truncated in Java and C?如何防止浮点数和双精度数在 Java 和 C 中被截断?
【发布时间】:2008-10-11 04:11:42
【问题描述】:

当我给 Java 和 C 提供大的浮点数和双精度数(在十亿范围内)时,它们会将它们转换为科学计数法,从而在此过程中失去精度。我怎样才能阻止这种行为?

【问题讨论】:

  • 您是否尝试过将它们作为字符串传递?它们将保持不变。

标签: java c floating-point


【解决方案1】:

对于 Java,请查看 BigDecimal

【讨论】:

    【解决方案2】:

    转换为科学记数法纯粹是其显示方式的影响。更改显示取决于您如何输出它(格式说明符)

    浮点数通常具有大约 6 位的精度,这使得它们不适合保存数十亿的数字。 Doubles 的精度约为 15 位,因此它应该能够以完全准确的方式保存数万亿以上的数字。

    在 C 中显示双精度:

    printf("%10f", dbl);
    

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 1970-01-01
      • 2015-04-30
      • 2011-10-24
      • 2018-02-23
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多