我试图将一串长度的数字转换为一个double,以便将其用作redis数据库的索引(redis需要双精度型),但转换不是正确,以便数据库抓取变得混乱。c#中的Convert.ToDouble在访问redis数据库时没有给出正确答案
这里是一个字符串转换成一个双
string start="636375529204974172";
ulong istart = Convert.ToUInt64(start); // result 636375529204974172
double dstart = Convert.ToDouble(istart); // result 6.3637552920497421E+17
,你可以看到,当我ISTART转换为双象DSTART,一些最显著位被搞砸的问题开始的代码,似乎通过在那里引入E + 17的转换。
我不明白为什么,它的一个整数,没有小数部分来创建错误,为什么它不能做到这一点?
有谁知道如何解决从字符串转换为双?
我也这么认为,但同时我只是用E + 17所以它应该工作的右双去E + 308 ? –
尝试使用“十进制”更精确 – edtheprogrammerguy
为什么十进制更精确的双精度? – jdweng