如果数字不是双精度值,则无法显示最多两个十进制值的双精度类型值

本文关键字:双精度 十进制 类型 两个 显示 数字 如果 | 更新日期: 2023-09-27 18:08:58

我有一个asp.net mvc应用程序,它显示数据从数据库表到使用knockout Js和Odata的网页。在我的模型中,我有几个条目是Double类型值,当我在网页上显示它们时,如果值为2.05类型,则工作正常,但当值为2.5类型2时,问题出现了,它只是显示2和2.5,而不是我想要它两个小数点,如2.00和2.50分别。

模型
public int Id { get; set; }
public double? Bid { get; set; }
public double? Offer { get; set; }

淘汰赛JS

self.getverticaldata = function () {
        $.ajax({
            dataType: "json",
            url: '/odata/CC',
            data: ko.toJSON(self.products),
            async: false,
            success: function (data) {
                self.datainput((ko.utils.arrayMap(data.value, function (canadiancrude) {
                    var obsCanadianCrude = {
                        Id: canadiancrude.Id,
                        Bid: ko.observable(canadiancrude.Bid),
                        Offer: ko.observable(canadiancrude.Offer),
                    }
                    return obsCanadianCrude;
                })));
            }
        });
    }

我可以知道一个更好的方法来处理这个问题,并显示最多两个十进制值

如果数字不是双精度值,则无法显示最多两个十进制值的双精度类型值

在绑定中使用toFixed

data-bind="text: Bid().toFixed(2)"
data-bind="text: Offer().toFixed(2)"

显示2.002.50

要处理nullundefined,您可以显示空字符串或一些占位符。

data-bind="text: (typeof Bid() === 'number') ? Bid().toFixed(2) : '' "
data-bind="text: (typeof Offer() === 'number') ? Offer().toFixed(2) : 'Not Exist!' "

你可能想看看NumeralsJS库:

http://numeraljs.com/

还有这个:

Javascript:更容易的方式格式化数字?