c#将整数的便士转换为磅

时间:2015-12-01 20:02:33

标签: c#

我需要存储数据库中项目的价格。我需要它们在int和penence(例如100),但它们必须显示为磅(1,00)。

我尝试将价格值除以func playerView(YTPlayerView: YTPlayerState, didChangeToState: YTPlayerState) { switch { case YTPlayerState.Paused: YTPlayerState.Playing, break } } ,如下所示:

/100m

但我有一个转换错误(无法从十进制转换为int)。

我必须使用int,因为我需要避免一些便士。

4 个答案:

答案 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)

如果您尝试将金额从便士转换为英镑,将美分转换为美元或其他任何金额,则需要将金额转换为十进制。

Example here

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);

    }
}