什么是小数不能做,但双倍可以,反之亦然?

Dha*_*jay 2 c# floating-point double decimal

有人可以告诉小数变量不能做什么,但同时双倍可以吗?

什么是双重不能做,但十进制可以吗?

我找到(sqroot 5)的功率超过2000000时遇到了麻烦

例如(3 +根(5))升至300000 ......这里使用二项式扩展时可以使用什么?

我可以使用双/小数吗?主要区别是什么?

注意:我想在小数点前保留最后3位小数,以回答100%的准确度.

Jon*_*eet 9

简单来说:

  • Decimal是十进制浮点类型,因此它可以表示精确的十进制值,例如0.1.它具有相当高的精度,但范围相对有限.它是用软件实现的,因此速度相对较慢.
  • Single/ Double二进制浮点类型,因此它们只能表示可以用二进制精确表示的数字 - 例如,不包括十进制值0.1.它们的精度相对较低,但范围很广.它通常用硬件实现,因此非常快.

另外float/ double表示正负无穷大,而"不是数字" - decimal没有任何此类.

有关更多信息,请参阅有关二进制浮点十进制浮点的文章.