Hi, Im making a bank note plugin and when someone withdraws a number like /withdraw 10.5550054 it looks weird and shit because so I was wondering how I could round it down or just stop them having more then 2 decimals in general. Thanks
Not a good way due to is not a string. double d = 121.88324 double dr = Integer.parseInt(d * 100)/100 It's 100 due to you want it to have 2 decimals. So you get the integer value of that number and then you divide it into 100 (2 decimals, 1000 for 3 decimals, etc.)
Hello, There is a much better way of doing that in Java, using DecimalFormat. Code (Text): double number = [...]; DecimalFormat format = new DecimalFormat("0.00"); String output = format.format(number); Why is this better? It's much more flexible and can be updated easily. For example, if you want to not show extra 0s (e.g. 5 rendering as "5" rather than "5.00"), simply replace "0.00" with "0.##". Furthermore, if you decide you want only 1 decimal, you use "0.0" or "0.#". Thirdly, the code is much more clear and straight-forward.
WTF ofc is a string, but you can't convert it before printing it lol And he said he want to round it, not to convert it
@Creepermanthe3rd Just a heads up, general programming questions like this can be googled and you'll receive many results a lot quicker than you would posting here. There are websites such as http://stackoverflow.com which are dedicated to questions such as these. This way this forum can focus on more Minecraft-related queries.
Um, of course you can. a String is a String. did you actually learn java before coming here? You print the converted string..
@Creepermanthe3rd wants to round the decimal not truncate it. You cannot do any calculations like rounding while it is a String. This does not work? Integer.parseInt() accepts a String not a double I believe you confused it a little (unless it is because I learned it a different way) This is the final result I came up and tested: Code (Text): double d = 121.88824; double dr = (int) ((d * 100) + 0.5); double finalValue = dr / 100; System.out.println(finalValue); It can be simplified. A little explication of basic rounding.: You add 0.5 then turn it into an int to truncate it. For example, 1.8 + 0.5 is 2.3, turning to an int is 2. But, 1.3 +0.5 is 1.8, which turned into an int is just 1. The problem with this is if you convert it to an int, you will lose the 2 decimal places. Instead, you have to first multiply by 100, do the rounding then bring it back to a decimal: Multiple 121.88824 by 100 = 12188.824 Do the first step of rounding (add 0.5): 12188.824 + 0.5 = 12,189.324 Truncate it by converting to an int = 12189 Bring it back the two decimal places: 12189 / 100 = 121.89