转换.toByte对浮点数进行舍入
本文关键字:舍入 浮点数 toByte 转换 | 更新日期: 2023-09-27 18:09:42
我正在写一个在大矩阵上工作的程序。由于内存不足,我将矩阵定义为byte[]
。内存不足的问题得到了解决,但是现在当我想给矩阵的元素赋值时,它告诉我浮点值不能转换为字节(元素的值是浮点的)。因此,使用Convert.ToByte
,我将浮点值转换为字节。问题是,它四舍五入浮点值,我不想要它。是否有任何函数,我可以使用,它不四舍五入浮点数?部分代码如下:
static byte[,,] Score = new byte[1501,1501,501];
Score[i, j, att] = Convert.ToByte(2.0 *(Math.Log(calNum())));
其中calnum
是计算浮点数的函数
这在技术上是不可能的。更多信息请看这里:https://en.wikipedia.org/wiki/Double-precision_floating-point_format
这实际上是可能的,但是,如果你想以较低的精度存储从-5到5的数字。
如果您使用数学,您可能需要查看稀疏矩阵的方向。该矩阵将优化其内部表示,减少内存影响。
您是否尝试使用十进制而不是浮点数?根据您尝试使用的小数位数,float可能会尝试四舍五入,甚至可能会给出不可靠的结果。请进一步阅读下面的链接,了解浮点数、双精度数和十进制数之间的区别。希望能有所帮助。
decimal float和double的区别