【发布时间】:2019-10-08 09:34:56
【问题描述】:
我注意到从double 到long 的转换会在要转换的数字为大时更改值,即使它远低于long 的最大值。
例如,有人能解释一下为什么这个转换没有按预期工作:
Convert.ToInt64(600000000000040000d)
// Return => 600000000000039936
Convert.ToInt64(600000000000040000L)
// Return => 600000000000040000
这会给我的公式带来一些麻烦... 谢谢。
【问题讨论】:
-
来自the documentation for
double:“Double 值最多具有 15 个十进制数字的精度”。您使用的是 19 位数字。
标签: c# type-conversion double