在Java中乘以一个字符串

时间:2011-01-02 19:49:40

标签: java multiplying

我有一个包含数字的字符串,我希望将该数字乘以 1.28

以下是字符串的分配方式

String PRICE = dataRecord.get( "PRICE" );

7 个答案:

答案 0 :(得分:7)

您需要获取数据的数字表示并对其执行乘法运算。由于这个例子是“价格”,我假设涉及金钱,因此建议使用小数类型。

String price = "9.99";
BigDecimal priceDecimal = new BigDecimal( price );
BigDecimal total = priceDecimal.multiply( new BigDecimal( "1.28" ) );
System.out.println( total );

答案 1 :(得分:0)

更好的方法是使用具有双字段类型的适当对象。

double price = dataRecord.price * 1.28;

与@ Rob的例子类似,给出了相同的答案。你决定哪个更简单。 ;)

double price = 9.99;
double total = price * 1.28;
System.out.printf("%.4f%n", total);

为了钱,我建议使用双倍适当的舍入。

答案 2 :(得分:0)

你真正想要的是:

double price = dataRecord.getDouble( "PRICE" );

假设dataRecord是ResultSet对象。无论如何,使用BigDecimals要好得多,如果PRICE真的存储在String对象中,那么我假设你这样做是因为你知道浮点精度问题。

答案 3 :(得分:0)

我希望这就是你要找的东西

String priceAsString = dataRecord.get( "PRICE" );

double priceAsInt = Double.valueOf(priceAsString).doubleValue();
double multipliedPrice = priceAsInt * 1.28;

如果在乘以该值后不需要将其转换为String,则只删除最后一行。

答案 4 :(得分:0)

将字符串转换为double以进行乘法运算。 Double.parseDouble()是一种可以使用的方法。我选择在try块中包装它,以防字符串格式错误并抛出错误(如果价格因某种原因而不是数字 - 例如5.67b或8..34)。

String price = dataRecord.get( "PRICE" );
try {
    double p = Double.parseDouble(price);
    double result = p*1.28;
    System.out.println(result);
} catch(NumberFormatException e) { // ERROR HANDLING
    System.out.println("Error parsing string: Price is not a number.");
}

供您参考,以下是parseDouble()的文档。

public static double parseDouble(String s)                           抛出NumberFormatException

返回一个初始化为由指定String表示的值的新double,由double类的valueOf方法执行。

答案 5 :(得分:0)

浮点数学。使用BigDecimal和你需要在结果上设置比例来调用舍入,因为比例很可能比你想要的更大。

private static final BigDecimal MULT = new BigDecimal("1.28");

BigDecimal price = new BigDecimal(dataRecord.get("PRICE"));
BigDecimal result = price.multiply(MULT).setScale(2, RoundingMode.HALF_EVEN);

答案 6 :(得分:0)

简单方法:执行以下操作 Double.ParseInt(“String Name”),将返回double值 如果您喜欢答案,PLS会给予一些信任