//ÐлаÑÑ Formatter Ð¸Ð¼ÐµÐµÑ Ð´Ð²Ð° ÑÑаÑиÑнÑÑ Ð¼ÐµÑода - вÑÐ²Ð¾Ð´Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ валÑÑÑ (ÑÑбли) в пÑавилÑном Ñклонении //и вÑÐ²Ð¾Ð´Ð¸Ñ Ð´ÐµÑÑÑиÑнÑÑ Ð´ÑÐ¾Ð±Ñ Ð² виде ÑÑÑоки Ñ Ð´Ð²ÑÐ¼Ñ Ð·Ð½Ð°ÐºÐ°Ð¼Ð¸ поÑле деÑÑÑиÑного делиÑÐµÐ»Ñ import static java.lang.Math.floor; import java.util.Locale; public class Formatter { public static String currencyName (double value){ //ÐозвÑаÑÐ°ÐµÑ Ñлово "ÑÑблÑ" в пÑавилÑном виде в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑблей //Ð ÐÐЬЮÐРУ: в ТРк Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ÑеÑко пÑопиÑано, как должно ÑклонÑÑÑÑÑ Ñлово "ÑÑблÑ": без ÑÑеÑа копеек! То еÑÑÑ, "1.35 ÑÑблÑ", а не "1.35 ÑÑблей". //ÐеÑод ÑабоÑÐ°ÐµÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ñак, как Ñказано в ТРString result; int floorValue = (int)floor(value); //окÑÑглÑем дÑÐ¾Ð±Ñ Ð´Ð¾ Ñелого, иÑполÑзÑеÑÑÑ floor Ð´Ð»Ñ ÑвеÑенноÑÑи, ÑÑо окÑÑÐ³Ð»Ð¸Ñ ÐºÐ°Ðº надо if ((floorValue != 11) && (floorValue%10 == 1)){ result = "ÑÑблÑ"; } else if (((floorValue%10 > 1)&&(floorValue%10 < 5)) && ((floorValue < 12) || (floorValue > 14))) { result = "ÑÑблÑ"; } else { result = "ÑÑблей"; } return result; } public static String doubleFormat (double value){ //ÐозвÑаÑÐ°ÐµÑ Ð´ÑÐ¾Ð±Ñ Ð² виде ÑÑÑоки в нÑжном ÑоÑмаÑе return String.format(Locale.ENGLISH,"%.2f", value); } }