C# 如果数字不是双精度值,则无法显示最多两个十进制值的双精度类型值
我有一个asp.NETMVC应用程序,它使用knockout Js和Odata将数据从数据库表显示到网页。在我的模型中,我有两个条目,它们是C# 如果数字不是双精度值,则无法显示最多两个十进制值的双精度类型值,c#,javascript,asp.net-mvc-4,knockout.js,C#,Javascript,Asp.net Mvc 4,Knockout.js,我有一个asp.NETMVC应用程序,它使用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
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.00
和2.50
更新
要处理null
和undefined
,可以显示空字符串或它的某个占位符
data-bind="text: (typeof Bid() === 'number') ? Bid().toFixed(2) : '' "
data-bind="text: (typeof Offer() === 'number') ? Offer().toFixed(2) : 'Not Exist!' "
谢谢,但当出价或出价为空时,这是失败的