我有一个带有以下
的asp.net mvc 4应用程序模型
public string Price {get;set;}
它在数据库中保存一个字符串,例如。 " 41.99"
查看
@foreach(var item in Model)
{
<div class="price">@item.Price</div>
}
它返回值&#34; 41.99&#34;一切都很好。
但是我想以不同的方式选择值。
以下是我需要的Html输出
@foreach(var item in Model)
{
<div class="price">
<span class="dollar">41</span>
<span class="cents">99</span>
</div>
}
那么我该如何归档呢?
@foreach(var item in Model)
{
<div class="price">
<span class="dollar">@item.Price(first part)</span>
<span class="cents">@item.Price(second part)</span>
</div>
}
任何帮助或指导都会受到赞赏。
答案 0 :(得分:4)
如果您的数据是字符串,那么
var price = "41.99";
var parts = price.Split('.');
var dollar = parts[0];
var cents = parts[1];
如果您的数据是小数
decimal price = 41.99m;
var dollar = (int)price;
var cents = (int)((price % 1) * 100);
答案 1 :(得分:1)
撇开这样的事实,你不应该使用字符串来表示数值,而是使用decimal
代替货币价值......以及.
不是唯一的分隔符(取决于区域设置)这一事实...
String.Split
是在分隔符上拆分字符串的最简单方法:
var parts = item.Price.Split(`.`);
现在你有parts[0]
的“美元”值,需要处理可能存在或不存在的小数部分。请注意,如果您需要cents
而不仅仅是04
4
值
@{
var parts = @item.Price.Split('.');
var cents = (parts.Length == 2) ? cents = parts[1] : "0";
}
<span class="dollar">@parts[0]</span>
<span class="cents">@cents</span>
答案 2 :(得分:0)
感谢所有回复
我想出了这里的答案和一些建议。
这是我的问题的答案: 型号:
public double Price { get; set; }
控制器:
public ActionResult Details(int id)
{
var data = _Context.Products.Where(d => d.ProductId == id).First();
if (data == null)
{
return HttpNotFound();
}
return View(data);
}
在视图中:
string s = Model.Price.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture);
string[] parts = s.Split('.');
int i1 = int.Parse(parts[0]);
int i2 = int.Parse(parts[1]);
<span>@i1</span>
<span class="decimal">@i2</span>
像魅力一样工作
非常感谢