将值的小数分隔为新变量(例如:从值"3.6"获得"0.6")

RGB*_*GBK 2 javascript jquery decimal

我想根据变量的十进制值创建一个新变量.

即:

myValue = 3.6

function twoNewVars{...}

newVar1 = 3
newVar2 = 0.6
Run Code Online (Sandbox Code Playgroud)

使用jQuery或javascript.通过简单地寻找"."的位置,人们会分裂吗?

或许将数字"3.6"视为文字字符串然后拆分......但这看起来有点乱,希望有更优雅的方法来做到这一点.

(NB根本不需要理解这个问题 - 我需要这个以便以更清洁的方式在页面上定位元素.我有视口高度可以是任何东西,然后内容,这是基于固定的高度,如果我可以找到重复内容的固定高度和视口的任意高度之间的差异我可以自动定位切割干净的东西)

Aln*_*tak 6

您可以使用原始数字和最近值之间的差值为零.

但是,Javascript没有提供将"最接近的值"设置为零的方法.这增加了这个方法:

// return integer part - may be negative
Math.trunc = function(n) {
    return (n < 0) ? Math.ceil(n) : Math.floor(n);
}
Run Code Online (Sandbox Code Playgroud)

您可以使用它来获取小数部分.请注意,如果您提供负数,则结果也将为负数.

// return fraction part
Math.frac = function(n) {
    return n - Math.trunc(n);
}
Run Code Online (Sandbox Code Playgroud)

C99库有一个modf函数,给定上面的两个函数可以仿真:

Math.modf = function(n) {
    return [Math.trunc(n), Math.frac(n)];
}
Run Code Online (Sandbox Code Playgroud)

即它返回一个包含整数部分的数组,然后是小数部分.