我需要存储数据库中项目的价格。我需要它们在int和penence(例如100),但它们必须显示为磅(1,00)。
我尝试将价格值除以func playerView(YTPlayerView: YTPlayerState, didChangeToState: YTPlayerState) {
switch {
case YTPlayerState.Paused:
YTPlayerState.Playing,
break
}
}
,如下所示:
/100m
但我有一个转换错误(无法从十进制转换为int)。
我必须使用int,因为我需要避免一些便士。
答案 0 :(得分:4)
要执行整数除法,两个操作数必须是整数类型。因此,请删除m
中的小数后缀100m
:
private int price;
public int Price
{
get { return price / 100; }
set { price = value; }
}
更新 - 突然之间在评论中向下,你说你想要一个字符串格式。这是btw:
string formattedPounds = String.Format("£ {0:0.00}", Price);
答案 1 :(得分:0)
我认为你不想要整数除法。只是改变你想要展示这个int的方式。
private int price;
private NumberFormatInfo info = new NumberFormatInfo
{
NumberDecimalSeparator = ","
};
public int Price
{
get { return price; }
set { price = value; }
}
public string GetPrice
{
get
{
return (Price / 100d).ToString("##.00", info);
}
}
使用GetPrice
属性来获取所需的值。
答案 2 :(得分:0)
private int priceInPence;
public decimal priceInPounds {
get { return priceInPence / 100m; }
set { priceInPence = (int)(value * 100); }
}
答案 3 :(得分:0)
如果您尝试将金额从便士转换为英镑,将美分转换为美元或其他任何金额,则需要将金额转换为十进制。
using System;
using System.Collections.Specialized;
public class Program
{
public static void Main()
{
NameValueCollection nvcFormVariables = new NameValueCollection();
nvcFormVariables.Add("Amount","1356");
//string sAmount = "13.56";
int amount = int.Parse(nvcFormVariables["Amount"]);
Console.WriteLine(amount);
decimal amountPaid = amount / 100;
Console.WriteLine(amountPaid);
decimal dAmount = decimal.Parse(nvcFormVariables["Amount"]);
Console.WriteLine(dAmount);
decimal dAmountPaid = dAmount / 100;
Console.WriteLine(dAmountPaid);
}
}