I am sitting here listening to shoplifting music while waiting for the Go game between Googles Deep Mind and Go champion Lee Sedol to begin. In the meantime, I am thinking about how to solve a problem converting between different base ten numbers and keeping the numbers as integers after the conversion rather than as fractional numbers. Say I want to from a number set that only has 59 numbers to a number set that has 69 numbers. You would think the problem to be fairly easy and straight forward. It is not. To start, the conversion would begin n * 69/59 - where n represents the number you want to convert from the 59 set to the 69 set. However, the solution is not so straight forward. Some numbers you could round off. You run into problems simply rounding off. As examples: A: 14 * 69/59 = 16.372881355932203389830508474576 B: 15 * 69/59 = 17.542372881355932203389830508475 'A' would be rounded off to 16 while 'B' would be rounded off to 18. This solution would under represent 17: Here is a graph that illustrates this problem: Well, we can toss that problem out the door. Well what about truncating the numbers. This also creates a problem - even though I do not have an example handy. This graph shows the problem with other numbers being under and over represented: For the data I am using, I have to have discrete integers after the conversion process. So back to the numbers. A: 14 * 69/59 = 16.372881355932203389830508474576 I am viewing the mantissa (the decimal part) as an error percentage. 37 percent of the time the number will belong to either the rounded number or the truncated number. The remainder of the time the number will belong to the other group. However this representation is also probably wrong. Does anyone have an idea as to how I can convert from the 59 number set to the 69 number set with a minimal error?