除法/取余在C语言中一个额外功能就是取整数中的单个值。(这里的数值包括整数和浮点数)。首先来看整数的例子,
1. 整数取单值(这里的整数是指被取单值的变量、常量的类型是整数)。
除以10,则小数点从右向左移一位,并取小数点左边的值。求10的模是小数点从右向左移动一位,并取小数点右边的值。例如,
#include <stdio.h> int main(void) { int a = 123; printf("%d", a/100); //取小数点左边的值 1, printf("%d", a%100); //去小数点右边的值 23 }
2. 双精度浮点数取单值(这里的双精度浮点数是指被取值的变量、常量为双精度浮点型或浮点型)
由于整个过程需要计算,所以即便开始是浮点型变量,到最后都会成为双精度浮点型的。双精度浮点型同样可以取单值,但是需要的是乘法/除法运算符。通过乘以10的幂来左右移动小数点,通过强制转换获得整数部分或者被原来的值减来获得小数部分。例如,
#include <stdio.h> void main(void) { double a = 23.45; //我要取值5 a=a*10; printf("%d", (int)((a-(int)a)*10)); }