转换。哎呀...这可能是我最困惑的语言方面。
无论如何,我想将int 999 转换为 $9.99。使用ToString("C")会给我$999.00,这不是我想要的。
我的所有整数都将以这种方式工作,这意味着如果某物品的价格为12.30,则int值将为1230。两位小数,始终如一。我知道这对大多数人来说很容易,但我在这里或通过谷歌找不到任何东西。
另外,如果有任何关于转换的资源,将不胜感激!
如果您的源变量已声明为int类型,则一种可能的解决方案是除以"100m"而不是"100"。否则,这将执行整数除法。 例如:
int originalValue = 80;
string yourValue = (originalValue / 100m).ToString("C2");
这将把你的值设置为"$0.80"。如果省略 "m",它将把它设置为 "$0.00"。
注意: "m" 告诉编译器将100处理为十进制数,并且在除法运算中将原始值隐式转换为 decimal 类型。
只需除以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
有关货币格式的详细信息,请参见此处。
更新:
我今天可能反应有点慢...你还需要将其转换为double,否则你会丢失小数位:
yourValue = ((double)originalValue / 100).ToString("C");
另外,您也可以使用十进制(decimal)类型,因为它通常是货币首选类型。
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;
}
享受吧!
YOURINTVALUE
/ 100).ToString("C2"); - fardjadsomeInt / 100.0
。 - Ed S.