让我说我有
const Price = 279.95;
我希望得到如下所示的分数:
const value = 279;
const fraction = 95;
我将如何做到这一点?分数应始终为2位小数。
答案 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;