Floated int get value&分开的分数

时间:2017-12-12 12:44:38

标签: javascript ecmascript-6

让我说我有

const Price = 279.95;

我希望得到如下所示的分数:

const value = 279;
const fraction = 95;

我将如何做到这一点?分数应始终为2位小数。

3 个答案:

答案 0 :(得分:1)

将数字转换为字符串后,split.

var getItems = ( num ) => String(num).split(".");
var splitNum = ( num ) => ( items = getItems( num ), { integer : Number(items[0]), fraction : Number(items[1] || 0) } );
console.log( splitNum( 279.95 ) );

<强>演示

var getItems = ( num ) => String(num).split(".");
var splitNum = ( num ) => ( items = getItems( num ), { integer : Number(items[0]), fraction : Number(items[1] || 0) } );

console.log( splitNum( 279.95 ) );

console.log( splitNum( 279 ) );

答案 1 :(得分:0)

您可以使用简单的数学

来完成

const Price = 279.95;
const value = ~~Price;
const fraction = ~~Math.ceil(((Price - value) * 100));

console.log(value); // 279 
console.log(fraction); // 95 

您可以获得有关~~ here的更多信息。

答案 2 :(得分:0)

对于设定的小数位数:

    const price = 279.95;

    // Double bitwise NOT; Quicker way to do Math.floor(price)
    const value = ~~price;

    // Remove the interger part from the price
    // then multiply by 100 to remove decimal
    const fraction = Math.ceil((price - value) * 100);

    console.log(value, fraction)

如果您想支持任意数量的小数位,请使用此方法获取fraction

// Convert the number to a string
// split the string into an array, delimited by "."
// get the second item(index: 1) from the array
const fraction = String(price).split(".")[1] || 0;