js能不能显示出分数?

JavaScript06

js能不能显示出分数?,第1张

在js中,分数是当做小数来处理的,用js的原生方法判断即可。

实现判断是通过parseInt转换,然后跟number作比较的:

如:

parseInt(number)==number

如果是true,number就是整数,否则不是整数

测试:

var number=123.456

if(parseInt(number)==number)alert('是整数')

else alert('就是小数')

把所有分数放入一个数组中,就可以用数组排序的方法来排序

<script type="text/javascript">

    function sortNumber(a,b){

        return a-b

    }

    var arr = new Array(3,5,8,31,66,2)

    document.write(arr.sort(sortNumber))

</script>

需要注意的是sortNumber这个方法,因为sort()是按照首字母或数字来排序的,如果没有sortNumber结果为2,3,31,5,66,8 ,这个显然不是我们所要的,如果想按照其他标准进行排序,就需要提供比较函数,如果a小于b,返回一个小于0的值,a排在b的前面,就是小的排前,大的排后,如果两者相等,就返回一个0,如果a大于b,返回一个大于0的值,b排在a的前面,根据这个,我们创建一个sortNumber的函数来判断。

这个问题,我在另一个问题里答复过,简直一模一样。。。。

https://zhidao.baidu.com/question/1694280288809319988

function fraction(num){//输入数字,不能是无限小数

var num=num.toString.split(".")//拆成整数部分和小数部分

if(!num[1])return num[0]//输入整数直接返回原值

var num1,num2//分子 分母

num[0]==0?num1=parseInt(num[1]):num1=parseInt(num[0]+""+num[1])

num2=parseInt(Math.pow(10,num[1].length)

if(num1%2==0 &&num2%2==0){//分子分母除2

( function dec2(){

num1=num1/2

num2=num2/2

if(num1%2==0 &&num2%2==0){//除完还能除就继续

dec2()

}

})()

if(num1%5==0 &&num2%5==0){//分母只能整除2或5的倍数

(function dec5(){

num1=num1/5

num2=num2/5

if(num1%5==0 &&num2%5==0){

dec5()

}

})()

return num1+"/"+num2

}

}