C# PB Exam Training - 0.1 Maximum Savings output проблем с децимални стойности
Здравейте !
Пробвам се със тестовете във judge от юли тази година и още на първата задача имам проблем.
Смисъла е да се изведе процент и число със двойна децимална стойност след запетайката(16.67% и 750.00). Проблема е че първо, не мога да извадя процента от 0.16 примерно, винаги излиза 0 (явно C# прави закръгляне някъде) а другия проблем е че и двете стойности излизат без децимална запетая като цели числа.
ето кода
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JudgePractice {
class Program {
static void Main(string[] args) {
/* 01. Maximum Savings */
double income; // 1500 ... 10 000
double months; // 3 ... 12
double expenses; // 300 ... 1000
income = Convert.ToInt32(Console.ReadLine());
months = Convert.ToInt32(Console.ReadLine());
expenses = Convert.ToInt32(Console.ReadLine());
double expenses2 = Convert.ToInt32(income * 0.3); // get 30% from income for unexpected expenses
double surplus = (income - expenses) - expenses2; // get the monthly surplus from the income
double finalSavings = months * surplus; // get the potential savings amount, multiplying monthly savings by the months inputed eg. 750.00
double finalSavingsPercent = (surplus / income) * 100; // get % from salary for the montlhy surplus eg. 16.67
string output = "She can save " + finalSavingsPercent + "%";
Console.WriteLine(output);
Console.WriteLine(finalSavings);
Console.ReadLine();
}
}
}
При input 1500 3 800 output-а е 0% и 750 без запетайки и две нули отзад. Помощ !
UPDATE: Смених всички променливи да са double и това изкара процента но сега е с много цифри зад запетаята, а другата цифра 750 все още няма цифри зад запетаята... She can save 16,6666666666667%
750