float值从double转换后丢失数据

时间:2014-08-06 05:18:46

标签: c# type-conversion

我有一个双重修改自从01/01/1900以来从ntp服务器传递的秒数,它打印好了

3616290958.594
3616290959.611
3616290960.538

我尝试将其转换为不同方法的浮点数,如System.Convert.ToSingle和常规转换,但我总是得到

3,616,291,000.00

如果它产生影响,我会使用它的.ToString(" N")方法打印浮动

我甚至尝试将双倍转换为long,然后将long转换为float(我不需要点之后的任何精度数据,我还要在转换之前转换为双倍)。< / p>

没有任何作用,帮助。

1 个答案:

答案 0 :(得分:0)

您只需使用Math.Truncate

即可

示例:

Double d = 3616290958.594;
string k = Math.Truncate(d);