除非整数,圆数到两个dp?

时间:2018-01-22 10:47:10

标签: javascript

(更新:对于那些说这是骗局并且投票结束的人来说,The manual about EXISTS的骗局:不同之处在于我想要显示1个dp数字到2 dp。这可能是其他一些问题的愚蠢,但如果是,请发布链接!)

我想在JavaScript中显示价格。如果原始数字是整数,我想显示一个整数。或者,如果它是一个浮点数,我想将它四舍五入到小数点后两位。

input  |  output
24     |  24
24.231 |  24.23
24.2   |  24.20

我已尝试过Math.round(num * 100) / 100,但这并没有正确转换24.2

我还试过了.toFixed(2),但将24转换为24.00,这不是我想要的。

有什么想法吗?在显示价格时,这一定是一个非常普遍的问题。

2 个答案:

答案 0 :(得分:1)

您可能需要使用if语句。

if(Number.isInteger(price)) {
    return price;
} else {
    return price.toFixed(2);
}

答案 1 :(得分:1)

您需要检查数字是否为整数,如果是,则转换为不带小数的字符串,否则转换为2位小数的字符串。

var ClientSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    company: {type: Schema.Types.ObjectId, ref: 'Company'}
});
ClientSchema.post('save', function() {
  console.log(this._id); ///working
});
ClientSchema.post('update', function() {
  console.log(this._id); ///undefined
});