- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对这些操作的结果有几个疑问。
首先,如果我有两个整数,将它们相除并将结果保存为 double 。是否存在任何舍入问题,例如 1/2 等于 0.5 而不是 1。
double ratio = int1/int2;
第二,如果我现在有了这个比率并将其乘以一个 UWORD 会有什么问题吗?
UWORD word1 = 4098;
UWORD word2 = ratio * word1;
顺便说一下,当我这样做时,我确实收到了编译器警告
narrowing or signed-to-unsigned type conversion found: double to unsigned short
最佳答案
您需要将 int1
转换为 double
,以便编译器知道使用浮点计算(而不是整数):
double ratio = ((double) int1) / int2;
要将 ration * word1
的浮点计算存储在 UWORD
中,您需要再次转换它(以防止出现警告):
UWORD word2 = (UWORD) (ratio * word1);
注意:这会截掉小数,如果您需要适当的舍入,请尝试 round()
function ,可从 math.h
获取。 (再次强调,通过正确的类型转换!)
关于C、舍入问题。 UWORD、整数和 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440587/
我对这些操作的结果有几个疑问。 首先,如果我有两个整数,将它们相除并将结果保存为 double 。是否存在任何舍入问题,例如 1/2 等于 0.5 而不是 1。 double ratio = int1
处理器中有很多 16 位寄存器,其定义如下 #define CAN_REG01 (*((uword volatile far *) 0x200000)) 如果寄存器及其值仍然
我使用 Armadillo 库在 C++ 中预先处理数据。程序最终产品是一个 ucube,它是一个用无符号整数填充的立方体。运行后,我想将 ucube 加载到 R 以执行一些最终的统计测试。为此,我创
我有以下功能: uword ADC_uwReadConv(void) { ADCIR = 0; return(ADDAT); } 该函数返回(C164CI)AD 转换的结果。低10位包含转换结
我是一名优秀的程序员,十分优秀!