Изменение бита Litle кода alcuadrado - glob
не видят файлы с именем из таких точек, как .htaccess
, поэтому я использую scandir и сам скрипт удаляет себя - проверьте __FILE__
.
function deleteDir($dirPath) {
if (!is_dir($dirPath)) {
throw new InvalidArgumentException("$dirPath must be a directory");
}
if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
$dirPath .= '/';
}
$files = scandir($dirPath);
foreach ($files as $file) {
if ($file === '.' || $file === '..') continue;
if (is_dir($dirPath.$file)) {
deleteDir($dirPath.$file);
} else {
if ($dirPath.$file !== __FILE__) {
unlink($dirPath.$file);
}
}
}
rmdir($dirPath);
}
Naw, не имеет значения.
Потеря производительности из-за Обработки строк является нулем.
И вот код для обрезки конца после %f
private static String trimTrailingZeros(String number) {
if(!number.contains(".")) {
return number;
}
return number.replaceAll("\\.?0*$", "");
}
цена Формата с группировкой, округление, нет ненужный обнуляет (в двойном).
Правила:
2.0000 = 2; 1.0100000 = 1.01
) 2.010 = 2.01; 0.20 = 0.2
) 1.994 = 1.99; 1.995 = 2; 1.006 = 1.01; 0.0006 -> 0
) 0
(null/-0 = 0
) $
(= $56/-$56
) 101101.02 = $101,101.02
)
-99.985 = -$99.99
10 = $10
10.00 = $10
20.01000089 = $20.01
Записанный в Kotlin как забавное расширение Двойных (причина, используемая в Android), но, может быть преобразован в Java легко, причина, классы Java использовались.
/**
* 23.0 -> $23
*
* 23.1 -> $23.1
*
* 23.01 -> $23.01
*
* 23.99 -> $23.99
*
* 23.999 -> $24
*
* -0.0 -> [110]
*
* -5.00 -> -$5
*
* -5.019 -> -$5.02
*/
fun Double?.formatUserAsSum(): String {
return when {
this == null || this == 0.0 -> "[110]"
this % 1 == 0.0 -> DecimalFormat("$#,##0;-$#,##0").format(this)
else -> DecimalFormat("$#,##0.##;-$#,##0.##").format(this)
}
}
, Как использовать:
var yourDouble: Double? = -20.00
println(yourDouble.formatUserAsSum()) // will print -$20
yourDouble = null
println(yourDouble.formatUserAsSum()) // will print [111]
О DecimalFormat: https://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html
Это могло бы быть очевидно, но иногда примечание будет полезно. Можно использовать println
, если Вы не хотите изменять количество плавающих цифр:
System.out.println("YOUR STRING" + YOUR_DOUBLE_VARIABLE);