java - Printing first 3 decimal places without rounding -
okay, know there question quite similar already, didn't quite answer question. please let me know if i'm doing wrong though.
i have written program gets temperature in fahrenheit user , converts celcius. looks this:
import java.util.scanner; public class fahrenheittocelcius { public static void main(string[] args) { double fahrenheit; scanner sc = new scanner(system.in); system.out.print("please enter temperature in fahrenheit: "); fahrenheit = sc.nextdouble(); double celcius = (fahrenheit - 32) * 5 / 9; string num = string.format("%.3f", celcius); system.out.println(" "); system.out.println(fahrenheit + "f" + " " + num + "c"); } }
when prints answer out, want first 3 decimal places printed, not rounded. example, if input 100f
, want 37.777c
printed, not 37.778c
.
i have tried using decimalformat
, string.format
(like above), both methods print out 37.778c
. there better way this?
thank answers, , apologise if duplicate.
you can use decimalformat
, set roundingmode
:
decimalformat df = new decimalformat("#.###"); df.setroundingmode(roundingmode.floor); string num = df.format(celcius);
Comments
Post a Comment