我使用以下行将float转换为int,但它并不像我想的那样准确:
float a=8.61f;
int b;
b=(int)a;
Run Code Online (Sandbox Code Playgroud)
结果是:( 8应该是9)
什么时候a = -7.65f,结果是:( -7应该是-8)
最好的方法是什么?
这个程序有效,除非nJars的数量是7的倍数,我会得到一个答案,如$ 14.999999999999998.对于6,输出为14.08.如何修复7的倍数的异常,这样它会显示14.99美元?
import java.util.Scanner;
public class Homework_17
{
private static int nJars, nCartons, totalOunces, OuncesTolbs, lbs;
public static void main(String[] args)
{
computeShippingCost();
}
public static void computeShippingCost()
{
System.out.print("Enter a number of jars: ");
Scanner kboard = new Scanner (System.in);
nJars = kboard.nextInt();
int nCartons = (nJars + 11) / 12;
int totalOunces = (nJars * 21) + (nCartons * 25);
int lbs = totalOunces / 16;
double shippingCost = ((nCartons * 1.44) + (lbs + 1) * 0.96) …Run Code Online (Sandbox Code Playgroud)