Это скорее вопрос головоломки/логики, и меньше вопросов программирования, но я надеялся, что кто-то сможет помочь, потому что я в тупике.Double to Int Rounding, Logic Issue
Я начинаю с целого числа и должен принимать X процентов от него. Как только я получу этот двойной номер, мне нужно округлить его до целого числа (назовите это Y). На самом деле это не имеет значения, если я его обойду, и мне все равно, как это происходит (вверх или вниз), поэтому использование пола/потолка было бы приемлемым решением - мне просто нужен int.
Позже в системе мне будет представлен int Y, и вам нужно будет знать, что такое оригинальный номер. В этот момент, если я знаю, какой процент был, и я знаю, какой метод я использовал для получения двойного значения для int - Как определить исходный номер.
Это должно работать для каждой комбинации с исходным числом/процентом.
Пример:
Original number: 997
Percentage: 90
Int-Conversion Method: Floor
997 * .90 = 897.3
floor(897.3) = 897
Y = 897
.. .. Учитывая 897, и зная процент и метод INT-преобразования, как можно определить оригинальный номер был 997?
'897/.90 = 996.667' Не был ли исходный номер 997 не 1000? Очевидно, что это не будет на 100% точнее, так как вы округлили 'Y'. – Danny
Да, 997. Извините, я редактировал оригинальный вопрос. Это проблема/вопрос, хотя есть ли способ сделать это на 100% точным? – ljump12