gpt4 book ai didi

c++ - 将两个整数相除而不转换为 double

转载 作者:太空狗 更新时间:2023-10-29 20:06:10 25 4
gpt4 key购买 nike

我有两个整型变量,partialtotal。这是一个进步,所以 partial 从零开始,一个接一个地上升到 total 的值。

如果我想获得指示进度的分数值(从 0.0 到 1.0),我可以执行以下操作:

double fraction = double(partial)/double(total);

但如果 total 太大,转换为 double 可能会丢失信息。

其实,丢失的信息量是可以容忍的,但我想知道是否有算法或标准函数来获得两个值之间的分数,丢失的信息较少。

最佳答案

显而易见的答案是将 partial 乘以某个比例因子;100 是一个常见的选择,因为除法会给出百分比整数值(向下舍入)。问题是如果值是太大以至于无法用 double 精确表示,有乘以比例因子也很有可能溢出。 (就此而言,如果它们那么大,初始值将在大多数机器上溢出 int。)

关于c++ - 将两个整数相除而不转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9198000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com