C++取小数运算

搜了半天C++如何取小数部分,都写得*,一点不是我想要的答案。

一、求解小数部分

假设:定义变量,原来的数originNum,整数部分intNum,小数部分fNum

int intNum = int(originNum);

fNum = originNum - intNum;

//总成一句
fNum = originNum - int(originNum);

例:

//想获取2.3的小数部分

double originNum= 2.3;

int intNum = int(originNum); //b=2,(隐式类型转换,将浮点数转换为整数,小数部分被舍弃)

float fNum = originNum - intNum; // b=0.3

二、除法的讲解

我看还有人这样求整数部分的:

int 整数部分 = 原来的数/1;

可以得出一个结论,能写出上面表达式的人一定对该语法了解不深。

我为你解惑:

在计算机编程中,除法操作通常分为整数除法浮点数除法两种。

1.整数除法

整数除法是指对两个整数进行除法运算,结果仍然是整数。如果除法结果有小数部分,小数部分将

被舍弃,只保留整数部分。例如,5除以2的整数除法结果是2,而不是2.5。

2.浮点数除法

浮点数除法则是对浮点数进行除法运算,结果可以是带有小数部分的浮点数。浮点数除法保留了除

法结果的小数部分,因此可以得到更精确的结果。例如,5.0除以2.0的浮点数除法结果是2.5。

所以:

对于表达式  int 整数部分 = 原来的数/1;

其中的  原来的数/1 得到应该还是保留小数的浮点数(数据类型为float),之所以能得到整数部

分,功劳全是 变量名 前的数据类型,默默的将等号右边的浮点型转为了整型(隐式类型转换,将

浮点数转换为整数,小数部分被舍弃)。

三、补充:

C++取模运算

C++中没有直接支持浮点数取模运算符。如果需要对浮点数进行取模运算,通常需要将浮点数转换为整数进行取模运算,然后再将结果转换回浮点数。取模运算是一种数学运算,通常用于计算除法的余数。在C++中,取模运算符为%,它返回除法操作中的余数部分。取模运算通常用于整数之间的运算,但在C++中,也可以用于浮点数之间的运算,只是这种情况下的行为不是很明确。

下面是一个简单的例子来说明取模运算的概念:

int dividend = 10;

int divisor = 3;

int remainder = dividend % divisor; // 取模运算,计算10除以3的余数

在这个例子中,dividend被除以divisor,余数为1,所以remainder的值为1。

取模运算也可以应用于负数。当被除数为负数时,余数的符号与被除数相同。当除数为负数时,余数的符号与被除数相反。例如:

int dividend = -10;

int divisor = 3;

int remainder = dividend % divisor; // 取模运算,计算-10除以3的余数

在这个例子中,被除数为-10,除数为3,余数为-1,因为-10 = (-3) * 3 + (-1)。

需要注意的是,当被除数为负数且除数为正数时,C++标准中并没有明确定义余数的行为。因此,在不同的编译器和平台上,对负数取模运算的结果可能会有所不同。因此,在实际应用中,应该避免对负数进行取模运算,或者根据具体情况对负数进行额外处理,以确保得到正确的结果。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值