java 如何把小数变成分数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何把小数变成分数相关的知识,希望对你有一定的参考价值。
rt
用伪代码表示吧,懒得另外做注释了(1)小数点后面的位数不确定,如果你用浮点类型表示小数,可以直接 类型 分子 = x*1000000; 类型 分母 = 1000000.(2)约分,如果没有找到相关函数。想自己动手解决。2个循环就OK了。 当然有一点要注意,约分只能用10,5,2约分(数学问题,自己想)main() .... where(分子能整除10) 分子=分子/10; 分母=分母/10; where(分子能整除5 and 分母能整除5) 分子=分子/5; 分母=分母/5; where(分子能整除2 and 分母能整除2) 分子=分子/2; 分母=分母/2;... 参考技术A 先得知道有多少位小数,然后乘对应个10,变成整数,0.35就变成了35和100,然后求最大公约数,这里是5,两个数都除以最大公约数,就是7/20了 参考技术B 小数点后面有几位数就是分母下的一后面几个零的决定分子就是小数点后面跟的数,再约分,例如:0.35=35/100=7/20 参考技术C 把小数单独取出来,n。取相应位数的10的倍数,m如1.25 n=25; m=100
那就是1 又25/100
约简,自己处理了。 参考技术D java中哪有分数啊,这个真心不会,围观大神。
在C语言中的百分比怎么精确到小数和保留整数四舍五入?
请写出代码加一些注释
#include <stdio.h>
int main()
int a,b,k;
printf("请输入分子分母和百分比的小数位数:\\n");
scanf("%d%d%d",&a,&b,&k);
printf("%d/%d=%.*f%%\\n",a,b,k,a*100.0/b);
return 0;
参考技术A 1. 用float 带小数2. 用int强制转换就是四舍五入
3. 最好是看官方的文档,有中文英文的,里的示例代码很详细 参考技术B 利用取整运算的截断特点实现。
比如:int a=0.75;取整后赋值给a的是0,小数点后面的被截断了。
如果要做整数的四舍五入,那么可以:a=(int)(0.75+0.5);取整后得到的与数学中四舍五入的结果一致,都是1;
如果要进行小数点后面的四舍五入,可以这样计算:
要保留小数点后面两位的小数,即在小数点后面两位上做四舍五入,0.756
float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;
运算是这样的:先将0.756乘以100,得到75.6,然后利用取值运算的截断做四舍五入,75.6+0.5=76.1取整后等于76,再除以100,得到结果:0.76本回答被提问者采纳
以上是关于java 如何把小数变成分数的主要内容,如果未能解决你的问题,请参考以下文章