|
|
@@ -5,147 +5,192 @@ import com.adealink.weparty.R
|
|
|
import com.adealink.weparty.module.profile.data.Gender
|
|
|
import java.util.Calendar
|
|
|
|
|
|
-fun formatNumber(number: Float): String {
|
|
|
+fun formatNumber(number: Int, group: Boolean): String {
|
|
|
+ val locale = App.instance.languageManager.getLanguage().locale
|
|
|
+ return if (group) {
|
|
|
+ "%,d".format(locale, number)
|
|
|
+ } else {
|
|
|
+ "%d".format(locale, number)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+fun formatNumber(number: Long, group: Boolean): String {
|
|
|
+ val locale = App.instance.languageManager.getLanguage().locale
|
|
|
+ return if (group) {
|
|
|
+ "%,d".format(locale, number)
|
|
|
+ } else {
|
|
|
+ "%d".format(locale, number)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+fun formatNumber(number: Float, group: Boolean): String {
|
|
|
val locale = App.instance.languageManager.getLanguage().locale
|
|
|
return when {
|
|
|
number % 1f == 0f -> {
|
|
|
//整数
|
|
|
- "%.0f".format(locale, number)
|
|
|
+ if (group) {
|
|
|
+ "%,.0f".format(locale, number)
|
|
|
+ } else {
|
|
|
+ "%.0f".format(locale, number)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
number * 10 % 1f == 0f -> {
|
|
|
//一位小数
|
|
|
- "%.1f".format(locale, number * 10f / 10)
|
|
|
+ if (group) {
|
|
|
+ "%,.1f".format(locale, number * 10f / 10)
|
|
|
+ } else {
|
|
|
+ "%.1f".format(locale, number * 10f / 10)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
//默认2位小数
|
|
|
- "%.2f".format(locale, number * 100f / 100)
|
|
|
+ if (group) {
|
|
|
+ "%,.2f".format(locale, number * 100f / 100)
|
|
|
+ } else {
|
|
|
+ "%.2f".format(locale, number * 100f / 100)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-fun formatNumber(number: Double): String {
|
|
|
+fun formatNumber(number: Double, group: Boolean): String {
|
|
|
val locale = App.instance.languageManager.getLanguage().locale
|
|
|
return when {
|
|
|
number % 1.0 == 0.0 -> {
|
|
|
//整数
|
|
|
- "%.0f".format(locale, number)
|
|
|
+ if (group) {
|
|
|
+ "%,.0f".format(locale, number)
|
|
|
+ } else {
|
|
|
+ "%.0f".format(locale, number)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
number * 10.0 % 1.0 == 0.0 -> {
|
|
|
//一位小数
|
|
|
- "%.1f".format(locale, number * 10f / 10)
|
|
|
+ if (group) {
|
|
|
+ "%,.1f".format(locale, number * 10f / 10)
|
|
|
+ } else {
|
|
|
+ "%.1f".format(locale, number * 10f / 10)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
//默认2位小数
|
|
|
- "%.2f".format(locale, number * 100f / 100)
|
|
|
+ if (group) {
|
|
|
+ "%,.2f".format(locale, number * 100f / 100)
|
|
|
+ } else {
|
|
|
+ "%.2f".format(locale, number * 100f / 100)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//格式化数字
|
|
|
-fun formatNumberStr(number: Int, omitted: Boolean = true): String {
|
|
|
+/**
|
|
|
+ * @param omitted, 缩写
|
|
|
+ * @param group, 千分位
|
|
|
+ */
|
|
|
+fun formatNumberStr(number: Int, omitted: Boolean = true, group: Boolean = false): String {
|
|
|
if (!omitted) {
|
|
|
- return number.toString()
|
|
|
+ return formatNumber(number, group)
|
|
|
}
|
|
|
return when {
|
|
|
number < 1000 -> {
|
|
|
- number.toString()
|
|
|
+ formatNumber(number, group)
|
|
|
}
|
|
|
|
|
|
number < 1000_000 -> {
|
|
|
val number = (number.toFloat() / 1000)
|
|
|
- "${formatNumber(number)}K"
|
|
|
+ "${formatNumber(number, group)}K"
|
|
|
}
|
|
|
|
|
|
number < 1000_000_000 -> {
|
|
|
val number = (number.toFloat() / 1000_000)
|
|
|
- "${formatNumber(number)}M"
|
|
|
+ "${formatNumber(number, group)}M"
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
val number = (number.toFloat() / 1000_000_000)
|
|
|
- "${formatNumber(number)}B"
|
|
|
+ "${formatNumber(number, group)}B"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-fun formatNumberStr(number: Long, omitted: Boolean = true): String {
|
|
|
+fun formatNumberStr(number: Long, omitted: Boolean = true, group: Boolean = false): String {
|
|
|
if (!omitted) {
|
|
|
- return number.toString()
|
|
|
+ return formatNumber(number, group)
|
|
|
}
|
|
|
return when {
|
|
|
number < 1000 -> {
|
|
|
- number.toString()
|
|
|
+ formatNumber(number, group)
|
|
|
}
|
|
|
|
|
|
number < 1000_000 -> {
|
|
|
val number = (number.toDouble() / 1000)
|
|
|
- "${formatNumber(number)}K"
|
|
|
+ "${formatNumber(number, group)}K"
|
|
|
}
|
|
|
|
|
|
number < 1000_000_000 -> {
|
|
|
val number = (number.toDouble() / 1000_000)
|
|
|
- "${formatNumber(number)}M"
|
|
|
+ "${formatNumber(number, group)}M"
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
val number = (number.toDouble() / 1000_000_000)
|
|
|
- "${formatNumber(number)}B"
|
|
|
+ "${formatNumber(number, group)}B"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-fun formatNumberStr(number: Double, omitted: Boolean = true): String {
|
|
|
+fun formatNumberStr(number: Double, omitted: Boolean = true, group: Boolean = false): String {
|
|
|
if (!omitted) {
|
|
|
- formatNumber(number)
|
|
|
+ return formatNumber(number, group)
|
|
|
}
|
|
|
return when {
|
|
|
number < 1000 -> {
|
|
|
- formatNumber(number)
|
|
|
+ formatNumber(number, group)
|
|
|
}
|
|
|
|
|
|
number < 1000_000 -> {
|
|
|
val number = (number / 1000)
|
|
|
- "${formatNumber(number)}K"
|
|
|
+ "${formatNumber(number, group)}K"
|
|
|
}
|
|
|
|
|
|
number < 1000_000_000 -> {
|
|
|
val number = (number / 1000_000)
|
|
|
- "${formatNumber(number)}M"
|
|
|
+ "${formatNumber(number, group)}M"
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
val number = (number / 1000_000_000)
|
|
|
- "${formatNumber(number)}B"
|
|
|
+ "${formatNumber(number, group)}B"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-fun formatNumberStr(number: Float, omitted: Boolean = true): String {
|
|
|
+fun formatNumberStr(number: Float, omitted: Boolean = true, group: Boolean = false): String {
|
|
|
if (!omitted) {
|
|
|
- formatNumber(number)
|
|
|
+ return formatNumber(number, group)
|
|
|
}
|
|
|
return when {
|
|
|
number < 1000 -> {
|
|
|
- formatNumber(number)
|
|
|
+ formatNumber(number, group)
|
|
|
}
|
|
|
|
|
|
number < 1000_000 -> {
|
|
|
val number = (number / 1000)
|
|
|
- "${formatNumber(number)}K"
|
|
|
+ "${formatNumber(number, group)}K"
|
|
|
}
|
|
|
|
|
|
number < 1000_000_000 -> {
|
|
|
val number = (number / 1000_000)
|
|
|
- "${formatNumber(number)}M"
|
|
|
+ "${formatNumber(number, group)}M"
|
|
|
}
|
|
|
|
|
|
else -> {
|
|
|
val number = (number / 1000_000_000)
|
|
|
- "${formatNumber(number)}B"
|
|
|
+ "${formatNumber(number, group)}B"
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -153,18 +198,18 @@ fun formatNumberStr(number: Float, omitted: Boolean = true): String {
|
|
|
/**
|
|
|
* @param distance 单位km
|
|
|
*/
|
|
|
-fun formatDistanceStr(distance: Float, omitted: Boolean = true): String {
|
|
|
+fun formatDistanceStr(distance: Float, omitted: Boolean = true, group: Boolean = false): String {
|
|
|
if (!omitted) {
|
|
|
- "${formatNumber(distance)}Km"
|
|
|
+ return "${formatNumber(distance, group)}Km"
|
|
|
}
|
|
|
return when {
|
|
|
distance < 1000 -> {
|
|
|
- "${formatNumber(distance)}Km"
|
|
|
+ "${formatNumber(distance, group)}Km"
|
|
|
}
|
|
|
|
|
|
distance < 1000_000 -> {
|
|
|
val distance = distance / 1000
|
|
|
- "${formatNumber(distance)}Mm"
|
|
|
+ "${formatNumber(distance, group)}Mm"
|
|
|
}
|
|
|
|
|
|
// distance < 1000_000_000 -> {
|
|
|
@@ -173,7 +218,7 @@ fun formatDistanceStr(distance: Float, omitted: Boolean = true): String {
|
|
|
|
|
|
else -> {
|
|
|
val distance = distance / 1000_000_000
|
|
|
- "${formatNumber(distance)}Bm"
|
|
|
+ "${formatNumber(distance, group)}Bm"
|
|
|
}
|
|
|
}
|
|
|
}
|