转化。 Blah ......对我来说可能是最混乱的语言方面。
无论如何,我想将int 999转换为9.99美元。使用ToString(“C”)给我$ 999.00,这不是我想要的。
我的所有整数都会以这种方式工作,这意味着如果某物的价格是12.30,那么int值将是1230.总是两位小数。我知道这对大多数人来说都很容易,我在这里或通过Google找不到任何东西。
此外,您对转化所拥有的任何资源都将不胜感激!
答案 0 :(得分:16)
如果您的源变量声明为int,那么一种可能的解决方案是除以“100m”而不是“100”。否则它将执行整数除法。 例如:
int originalValue = 80;
string yourValue = (originalValue / 100m).ToString("C2");
这会将yourValue设置为“$ 0.80”。如果省略“m”,则将其设置为“$ 0.00”。
注意:“m”告诉编译器将100视为小数,并且作为除法的一部分,将对originalValue进行隐式转换。
答案 1 :(得分:5)
除以100:
<击> 撞击>
<击>yourValue = (originalValue / 100).ToString("C");<br>
// C will ensure two decimal places... <br>
// you can also specificy en-US or whatever for you currency format
击> <击> 撞击>
有关货币格式的详细信息,请参阅here。
更新:
我今天一定很慢......你还必须转换为双倍,否则你将丢失小数位:
yourValue = ((double)originalValue / 100).ToString("C");
(或者,您可以使用decimal, since it is usually the preferred type for currency)。
答案 2 :(得分:0)
我为任何只需要根据某个分隔符划分零的人提供了一个函数。例如:1250000 - &gt; 1,250,000 ..
public static string IntToCurrencyString(int number, string separator)
{
string moneyReversed = "";
string strNumber = number.ToString();
int processedCount = 0;
for (int i = (strNumber.Length - 1); i >= 0; i--)
{
moneyReversed += strNumber[i];
processedCount += 1;
if ((processedCount % 3) == 0 && processedCount < strNumber.Length)
{
moneyReversed += separator;
}
}
string money = "";
for (int i = (moneyReversed.Length - 1); i >= 0; i--)
{
money += moneyReversed[i];
}
return money;
}
享受!