如何提取浮点数的整数以及小数部分

如何提取浮点数的整数以及小数部分,第1张

如何提取浮点数的整数以及小数部分

程序大概思路是这样的:先提取出小数部分,再提取出整数部分。请看代码:

#include

<stdioh>

int

main()

{

float

num

=

314;

float

temp

=

num;

int

integer;

while

(temp-

1

>

0)

{

temp--;

}

integer

=

num

-

temp;

printf("%2f的整数部分是:%d,小数部分是:%2f",

num,

integer,

temp);

getchar();

return

0;

}

程序第4行定义了一个浮点数314,我们将提取出它的整数部分和小数部分。

提取处小数部分的思路是将浮点数不断减1,直到剩余部分大于0小于1,此时就得到了小数部分。

提取整数部分只需将原有的浮点数减去小数部分即可。

最后的getchar()用于暂停程序。

double

dd=12334;

int

i=(int)dd;

第二句的意思是把第一个double值强制转换成int型,然后你相减就好了。但是这样做可能在不同的JDK版本下会损失精度,出现那样问题的话自己再取个固定位数值就好了。

如上图:

首先,确定要提取的小数单元格位置,例如为C1,

其次,确定要提取的数字是小数点后第几位,确定其单元格位置,例如C2(当然这个可以省略可以在后面公式直接添加,但是不智能)

再者,确定小数点位置,用公式:=FIND("",C1),获取小数点位置

最后,提取对应位置的数,用公式:=RIGHT(LEFT(C1,C2+C3),1)

所以当该变小数和要提取的位数时,小数位置和提取数字均会变化

import javamathBigDecimal;

import javautilScanner;

public class GetFloat {

public static void main(String args[]) {

Scanner in = new Scanner(Systemin);

float f = innextFloat();

int fInt = (int) f;

BigDecimal b1 = new BigDecimal(FloattoString(f));

BigDecimal b2 = new BigDecimal(IntegertoString(fInt));

float fPoint = b1subtract(b2)floatValue();

Systemoutprintln("整数部分为:" + fInt + "\n" + "小数部分为: " + fPoint);

}

}

数学上有个函数是取小数的整数部分的写作:[

]

也就是说

[34]=3

[89]=8

[-87]=-8

即是直接舍去小数点后面的数,不进行四舍五入!

取小数部分即是X-[X],某个数直接去掉整数部分就是小数部分了。

代码如下:

#include <stdioh>

int main(){

double number; //其中number表示输入的数

int zhengshu;   //表示实数的整数部分

double xiaoshu;  //表示整数的小数部分

printf("请输入一个实数:"); //提示输入一个数

scanf("%lf",&number);

zhengshu = (int)number;

xiaoshu = number-zhengshu;

printf("%f整数部分为:%d,小数部分为:%f \n",number,zhengshu,xiaoshu);

return 0;

}。

程序执行结果:

程序设计思路就是输入一个浮点数,把这个浮点强转为整数,C语言强制转换浮点数为整数的话,会丢失精度,也就是小数部分,再把原来的数减去整数部分,就可以得到小数部分,然后定义变量把相应的部分存储,打印出来就行了。

public class T

{

public static void main(String[] args)

{

double a = 3987;

double b = a%10;

int c = (int)(a - b);

Systemoutprintln("a="+a + " 整数部分="+c+" 小数部分="+b);

}

}

以上就是关于如何提取浮点数的整数以及小数部分全部的内容,包括:如何提取浮点数的整数以及小数部分、java中 double型取小数部分、如何快速提取Excel小数点后第N位数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9670616.html

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

发表评论

登录后才能评论

评论列表(0条)

保存