Float值从double转换后丢失数据

本文关键字:数据 转换 值从 double Float | 更新日期: 2023-09-27 18:16:47

我有一个双变量表示从1900年1月1日起从ntp服务器经过的秒数,它打印ok

3616290958.594
3616290959.611
3616290960.538

我试图将其转换为float在不同的方法,如System.Convert.ToSingle和常规casting,但我总是得到

3,616,291,000.00

我使用它的。tostring ("N")方法打印浮点数,如果它有影响

我甚至尝试将double类型转换为long类型,然后将long类型转换为float类型(点之后我不需要任何精度数据,我将在转换之前将double类型设置为floor)。

Float值从double转换后丢失数据

您可以简单地使用Math.Truncate

的例子:

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