如果JS变量上有一个非整数(十进制)整数,您会如何将数字和十进制分开,以便在CSS中分别设置它们的样式?有没有一个神奇的JQuery/plugin/Library?
http://jsfiddle.net/vm7488/1ggbow5b/
(你可以看出,一个精心设计的JSFiddle正在认真地乞求答案)
目前,事态发展到了紧要关头——我计划做一个不等于零的var模数1(varia % 1 != 0
)条件,并从中锻炼一些东西,但如果有什么东西可以做到这一点,比如一个已经制作好的内置函数,那将是一个很棒的帮助,谢谢!
您可以使用Math.floor()
:简单地将其分离
var integerPart = Math.floor(varia);
var fraction = varia - integerPart;
然后根据您的意愿设置这些格式。
如果您也需要底片,那么在这种情况下应该使用Math.ceil()
,如下所示:
if (varia < 0) {
var integerPart = Math.ceil(varia);
var fraction = varia - integerPart;
} else {
// same as above
}
查看小提琴的更新版本:
http://jsfiddle.net/abhiklpm/1ggbow5b/2/
function hey() {
//generate 25.50 and simply display it.
this.num = 25.50;
var parts = this.num.toString().split('.');
this.whole = parts[0];
this.dec = Number("."+parts[1]).toFixed(2).replace('0','');
this.num = this.whole + this.dec;
}
更新了评论:http://jsfiddle.net/abhiklpm/1ggbow5b/4/
像@TrueBlueAussie建议的那样保持简单。
var out = document.getElementById('out'),
text = '25.50',
parts = text.split('.');
out.textContent = 'Integer part: ' + parts[0] + 'nDecimal part: ' + (parts[1] || 0);
<pre id="out"></pre>
如果将其作为number处理
var值=25.50;
var integer=Math.floor(值);//=25var decimal=value-integer;//=。50
也适用于字符串
var numbers=value.toString().split('.');
然后可以对数组索引位置执行强制转换。比如
integer=parseInt(数字[0]);fraction=parseInt(数字[1]);
你甚至不需要做任何数学运算,你只需要使用RegEx从英镑中分割便士:
var RegEx = /([d]+?).([d]+)/g;
var Price = '25.50';
var StyledPrice = Price.replace(RegEx, '<div class="pound">$1</div><div class="dot">.</div><div class="pence">$2</div>');
$('div').html(StyledPrice);
示例
更新
Xotic750的答案更好,因为它稍微更快:示例