将双精度转换为长精度,然后再转换为双精度,是否保证将精确值保持在小数点左侧?
编辑:使用C++:转换如下:
double d_var = func();
long l_var = (long)d_var;
d_var = (double)l_var;
对于我使用过的每种编程语言,它都会将值保留在小数点的左边。
对于类型转换,则在转换时删除小数,但对于range,则double可以容纳比long更大的数字,因此在类型转换过程中会变成其他数字。
至少对于我能想到的通用语言。