请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
有没有办法使用十进制数据类型,比如一种方式decimal32
,decimal64
或者decimal128
在我的C++程序?
PHP有一个十进制类型,它没有浮点数和双精度的"不准确性",因此2.5 + 2.5 = 5而不是4.999999999978325或类似的东西.
所以我想知道C或C++是否有这样的数据类型实现?