Java Doubles 不擅长数学

标签 java c++ math calculator double-precision

<分区>

我目前正在用 Java 编写一个计算器程序。这是我的第一个java程序,我习惯了c++。

我注意到 Java 中的 double 与 C++ 中的 double 完全不同。 在 Java 和 C++ 中试试这个
4.1*3
那/.1

应该是
12.3 然后是 123,c++ 给出了这个结果但是 java 给出了
12.299999999999999 和 122.99999999999999

我怎样才能像在 c++ 中那样用 double 进行数学计算,我知道你在程序中使用 12.299999999999999 与 12.3 相比没有任何区别,但是当用户读取数字时,这是非常难看的。我研究了 BigDecimal 类,但我不能用那个类做三角函数和对数等等

最佳答案

数学是一样的;显示是不同的,因为大多数 C/C++ 显示格式为舍入数字以避免最低有效位的不精确。

关于Java Doubles 不擅长数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384601/

相关文章:

java - Hibernate 4 升级 (java.lang.NoSuchMethodError : javax. persistence.spi.PersistenceUnitInfo.getValidationMode())

java - 此堆栈转储是否表明我遇到了死锁?

java - 如何用 Java 1.8 函数替换反射方法访问?

c++ - 关于 C++ 中的多重继承、虚拟基类和对象大小的问题

jquery - 将 px 转换为度数

java - 如何从 Iterator<E> 创建无限 Stream<E>?

c++ - 无法理解 C 和 C++ 中静态的行为

c++ - 是否可以使模板函数成为模板特化类的友元?

math - 是否有用于从计数数据中学习狄利克雷先验的 R 包

math - 如何在 Batch 中正确执行模数运算?