CC++中使用int强制类型转换和floor函数有区别吗

CC++中使用int强制类型转换和floor函数有区别吗,第1张

1、int是向0取整,比如:19会变成1,-19会变成-1

floor是向下取整,比如:18会变成1,-11会变成-2(注意这点和int不同)

2、返回值类型也有区别。以下是floor的原型:

float floor( float arg );

double floor( double arg );

long double floor( long double arg );

double floor( Integral arg ); (C++11)

由此可见,floor返回的值是浮点型,而(int)返回的值是整型。

2:00:00转换成数值是0083333333……天,不是008天,乘以24,也就是换算为小时就是2小时,而不是192小时。

不过由于存在浮点小数运算误差,这样的公式有时会出现错误。所以要用ROUND函数修正。

楼上的想法是对的,但Int函数在这里不知是否能用,用Floor函数是一定可以的,即

UPDATE 表1 SET [表1][字段1] = Floor([字段1]100)/100

PS:Floor函数是向下取整函数,比如

Floor(12378100)/100

=Floor(12378)/100

=123/100

=123

C语言有以下几种取整方法:1、直接赋值给整数变量。如:int i = 25; 或 i = (int) 25;这种方法采用的是舍去小数部分,可以用于你的问题。2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,可以用于你的问题。但是整数除法对负数的取整结果和使用的C编译器有关。3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:floor(25) = 2floor(-25) = -34、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:ceil(25) = 3ceil(-25) = -2floor()是向负无穷大舍入,floor(-25) = -3;ceil()是向正无穷大舍入,ceil(-25) = -2。floor函数可以用于你的问题。hyh的意见:int x,a,b,c,d;a=x/1000;b=x%1000/100;

floor函数,其功能是“向下取整”,或者说“向下舍入”、“向零取舍”,即取不大于x的最大整数,与“ 四舍五入 ”不同,下取整是直接取按照数轴上最接近要求值的左边值,即不大于要求值的最大的那个整数值。 [1]

语法

FLOOR(number, significance) 

Number 必需。要舍入的数值。 

Significance 必需。要舍入到的倍数。 

说明

将参数 number 向下舍入(沿绝对值减小的方向)为最接近的 significance 的倍数。

如果任一参数为非数值型,则 FLOOR 将返回错误值 #VALUE!。

如果 number 的符号为正,且 significance 的符号为负,则 FLOOR 将返回错误值 #NUM!。 

示例

FLOOR函数在Excel中的示例如下: 

公式说明结果

=FLOOR(37,2):将 37 沿绝对值减小的方向向下舍入,使其等于最接近的 2 的倍数2

=FLOOR(-25, -2):将 -25 沿绝对值减小的方向向下舍入,使其等于最接近的 -2 的倍数-2

=FLOOR(25, -2):返回错误值,因为 -25 和 2 的符号不同#NUM!

=FLOOR(158, 01):将 158 沿绝对值减小的方向向下舍入,使其等于最接近的 01 的倍数15

=FLOOR(0234, 001):将 0234 向下舍入到最接近的 001 的倍数023

excel中的ceiling函数,是将数值向上舍入到指定基数最接近的倍数。

ceiling函数的语法见下图。

此函数有两个参数,第一个参数number:我们要进行舍入的数值;

第二个参数significance:要舍入到的倍数。

步骤阅读

数的情况也是如此,只不过返回有可能也是小数而已,参看下图:

如果第一个、第二个参数都为负数,道理也是一样的,只是返回结果是负数(负数最接近的倍数也是负数)。如下图所示:

以上是两个参数符号相同的情况,如果两个参数符号不同,函数将返回错误值

#NUM!。如下图所示,分别列举了两种都返回错误值的情况。

c语言标准库中有名为floor的函数。

函数的声明

double floor(double x)

参数: x-- 这是浮点类型的值

返回值: 返回小于或等于x的最大整数值

使用floor函数需要额外包含#include <mathh>头文件

示例

#include <stdioh>

#include <mathh>

int main ()

{

float val1, val2, val3, val4;

val1 = 16;

val2 = 12;

val3 = 28;

val4 = 23;

printf("Value1 = %1lf\n", floor(val1));

printf("Value2 = %1lf\n", floor(val2));

printf("Value3 = %1lf\n", floor(val3));

printf("Value4 = %1lf\n", floor(val4));

return(0);

}

运行将产生以下结果:

Value1 = 10

Value2 = 10

Value3 = 20

Value4 = 20

以上就是关于C/C++中使用int强制类型转换和floor函数有区别吗全部的内容,包括:C/C++中使用int强制类型转换和floor函数有区别吗、excel函数 floor 关于它算加班时间的问题、Access数据库取消四舍五入功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9609853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存