长整数到可读字符串
Long integer to readable string
我希望能够将非常长的整数转换为可读的字符串
这从 1500 (1.50k) 到 12.500.000.000 即 12.50b 等等到不可读的数字,这些数字将被标记为 A 然后 B 等
现在我很确定有一段漂亮的逻辑表明如果整数的字符串长度为 9,则点应该位于位置 3 和 6 或其他地方。
我的数学(及其可编程逻辑)对我来说是不存在的,所以任何人都可以帮助我吗?
这是我现在凌乱且不可重复使用的尝试:
int val = 150050004;
string theValue = val.ToString();
int valLength = theValue.Length;
string newVal = theValue;
if (valLength == 7) {
newVal = theValue.Substring(0, 1) +"."+ theValue.Substring(1, 2);
}
if (valLength == 8) {
newVal = theValue.Substring(0, 2) +"."+ theValue.Substring(2, 2);
}
if (valLength == 9) {
newVal = theValue.Substring(0, 3) +"."+ theValue.Substring(3, 2);
}
if (valLength > 6 && valLength < 10) {
newVal = newVal + "m";
}
其中 newVal 输出 150.05m
试试这个来打破“。” :
NumberFormatInfo numFormat = new NumberFormatInfo();
numFormat.NumberDecimalSeparator = ",";
numFormat.NumberGroupSeparator = ".";
long val = 12345678912345;
String result = val.ToString("#,##0",numFormat);
要添加后缀信息,请执行以下操作:
String result = null;
if (val / 1000000000 > 1)
result = val.ToString("#,##0,#,,B",numFormat);
else if (val / 1000000 > 1)
result = val.ToString("#,##0,#,M", numFormat);
else if (val / 1000 > 1)
result = val.ToString("#,##0,#K", numFormat);
else
result = val.ToString("#,##0", numFormat);
我希望能够将非常长的整数转换为可读的字符串
这从 1500 (1.50k) 到 12.500.000.000 即 12.50b 等等到不可读的数字,这些数字将被标记为 A 然后 B 等
现在我很确定有一段漂亮的逻辑表明如果整数的字符串长度为 9,则点应该位于位置 3 和 6 或其他地方。
我的数学(及其可编程逻辑)对我来说是不存在的,所以任何人都可以帮助我吗?
这是我现在凌乱且不可重复使用的尝试:
int val = 150050004;
string theValue = val.ToString();
int valLength = theValue.Length;
string newVal = theValue;
if (valLength == 7) {
newVal = theValue.Substring(0, 1) +"."+ theValue.Substring(1, 2);
}
if (valLength == 8) {
newVal = theValue.Substring(0, 2) +"."+ theValue.Substring(2, 2);
}
if (valLength == 9) {
newVal = theValue.Substring(0, 3) +"."+ theValue.Substring(3, 2);
}
if (valLength > 6 && valLength < 10) {
newVal = newVal + "m";
}
其中 newVal 输出 150.05m
试试这个来打破“。” :
NumberFormatInfo numFormat = new NumberFormatInfo();
numFormat.NumberDecimalSeparator = ",";
numFormat.NumberGroupSeparator = ".";
long val = 12345678912345;
String result = val.ToString("#,##0",numFormat);
要添加后缀信息,请执行以下操作:
String result = null;
if (val / 1000000000 > 1)
result = val.ToString("#,##0,#,,B",numFormat);
else if (val / 1000000 > 1)
result = val.ToString("#,##0,#,M", numFormat);
else if (val / 1000 > 1)
result = val.ToString("#,##0,#K", numFormat);
else
result = val.ToString("#,##0", numFormat);