是否存在使用单一数据类型而不是双精度数据类型更有意义的情况?根据我的搜索,double的缺点是它需要更多的空间,这对于大多数应用程序来说不是问题。在这种情况下,所有的浮点数都应该是双精度的吗?
一点背景信息:我正在使用一个应用程序,它处理大量关于坐标和化学物质的数据。一些客户已经注意到,在导入数据的电子表格时,一些高精度的值会四舍五入为单精度。
发布于 2009-12-09 02:05:23
在大多数桌面应用程序上,是这样的。
但是,如果你有一个巨大的数组,如果你不需要精度,那么将它的大小减半可能是值得的。
特别是考虑到几乎所有的消费者桌面都有在硬件中完成的双精度浮点运算。
发布于 2009-12-09 02:09:56
摘自this .net文章
数据类型宽度
最有效的数据类型是那些使用运行时平台的本机数据宽度的数据类型。在当前的平台上,计算机和操作系统的数据宽度均为32位。
因此,在Visual Basic .NET中,整数是目前最有效的数据类型,其次是长整型、短整型和字节型。您可以通过关闭整数溢出检查来提高Short和Byte的性能,例如通过设置RemoveIntegerChecks属性,但这会导致由于未检测到的溢出而导致计算不正确的风险。您不能在运行时打开和关闭此检查;只能在应用程序的下一次构建时设置它的值。
如果您需要小数值,最好的选择是Double,因为当前平台的浮点处理器以双精度执行所有操作。其次是Single和Decimal,按效率顺序排列。
发布于 2009-12-09 02:04:42
正如Mark在他的评论中所说,在内存受限的系统中,空间可能是一个问题。您可能还想对列表进行索引或排序,如果您可以将值存储在单元值中,为什么还要对双精度值进行索引或排序?
https://stackoverflow.com/questions/1868747
复制相似问题