【发布时间】:2020-07-13 16:57:34
【问题描述】:
我需要使用标准的“math.h”中点舍入行为将 64 位双精度值舍入到我的代码中最接近的 uint64_t。其中一些数字具有以下属性:
- 大于 LLONG_MAX
- 小于或等于 ULLONG_MAX
我注意到标准库舍入函数没有“无符号”版本。另外,我怀疑当中间双精度值太大而无法放入尾数时,人们用来执行此操作的某些技巧不再起作用。
进行这种转换的最佳方法是什么?
【问题讨论】:
-
回合如何?只是截断小数位?向零舍入?朝最近的方向四舍五入?上圆,下圆?有 很多 种方法来四舍五入 - 你想怎么做?
-
@JesperJuhl 我已经澄清了这个问题。
-
你不能创建自己的函数来做到这一点吗?