相关疑难解决方法(0)

使用DecimalFormat的问题

DecimalFormat当我要在回归后打印出系数时,我遇到了问题.

这是代码中遇到问题的部分;

DecimalFormat twoDForm = new DecimalFormat("0.00");   
private double s(double d){  
    return Double.valueOf(twoDForm.format(d));  
}  
Run Code Online (Sandbox Code Playgroud)

这是eclipse中的错误信息;

Exception in thread "main" java.lang.NumberFormatException: For input string: "0,16"  
 at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)  
 at java.lang.Double.valueOf(Unknown Source)  
 at model.ARF2.s(ARF2.java:126)  
 at model.ARF2.printBestModel(ARF2.java:114)  
 at testing.testclass3.bestForecastingModel(testclass3.java:69)  
 at testing.testclass3.main(testclass3.java:36)  
Run Code Online (Sandbox Code Playgroud)

如果有人对如何修复代码有任何激增,请告诉我.我想要系数上的两位小数.

谢谢

拉尔斯

java decimalformat

3
推荐指数
1
解决办法
2万
查看次数

将大十进制数转换为没有指数格式的双精度数

我正在对高十进制精度 BigDecimal 对象进行计算。

我正在使用需要双精度参数的第三方库。当我尝试将其转换为 double 时,我得到的是指数格式而不是小数格式的值。

BigDecimal 0.000035000000000
Double 3.5E-5
Run Code Online (Sandbox Code Playgroud)
BigDecimal bd; 
BigDecimal(0.0000349999999995631583260546904057264328002929687500);
bd= bd.setScale(15,BigDecimal.ROUND_CEILING);

Log.i("bd","bd "+bd.toPlainString());
Log.i("bd","double"+bd.doubleValue());
Run Code Online (Sandbox Code Playgroud)

我发现了多种方法可以将这个 3.5E-5 值转换为正确的十进制点数,但仅限于字符串格式。而我需要双倍的价值

能够在 String 对象中没有指数但不是双

  DecimalFormat df = new DecimalFormat("#");
        df.setMaximumFractionDigits(16);
       String test=df.format(bd,doubleValue());
        System.out.println("op2 "+test);
        Double test1=Double.parseDouble(test);
        System.out.println("op2 "+test1);
Run Code Online (Sandbox Code Playgroud)

输出 op2 .000035 op2 3.5E-5

自从几天以来,我一直在努力寻找解决方案,因为我无法控制需要值加倍的 3rd 方库

推荐链接

格式 BigDecimal 不带科学记数法全精度

将java中的指数值转换为数字格式

Java中从指数形式到十进制的转换

如何解决 Java 四舍五入问题

没有 E 的 Java BigDecimal

如何避免使用科学记数法?

我的问题与这些链接不同,我不希望 double 作为没有指数的字符串,而我只希望它采用 double 格式。

编辑

如果传递的 double 值是指数格式,则基于 NDK 的库将进一步对此对象进行计算,这将导致更多的小数点和更大的指数值。所以,我想传递一个没有 E 的简单 double

java double android bigdecimal

3
推荐指数
1
解决办法
1万
查看次数

Android/SQLite:保存/检索REAL类型的数据

我有一个带字段REAL的SQLDB.在我的布局中,我将其字段大小设置为仅允许8 + 2位数.在我的对象中,我使用了字段的数据类型为"float".

qs[0] = "CREATE TABLE " + RELATION_TABLE_NAME + "(id TEXT PRIMARY KEY, name TEXT NOT NULL, startBal REAL NOT NULL, currentBal REAL NOT NULL);";

<EditText android:text="" android:id="@+id/relCurrBalTxt" style="@style/EditTextStyle"
 android:inputType="numberDecimal" android:maxLength="11" android:hint="12345678.99" />
Run Code Online (Sandbox Code Playgroud)

我在editText中输入值"87654321.99",然后单击"保存".它填充对象

// Send the data to object 
rowData.setValue(2, Float.parseFloat(sbalTxt.getText().toString()));
// In object, this is how I save it
this.setCurrentBalance( ((Float)value).floatValue() );  // value is Object type

// Saving data in ContenteValues to save to DB
// LOG Rcvd from Object while Saving CurrBal: 8.765432E7
values.put("currentBal", …
Run Code Online (Sandbox Code Playgroud)

sqlite floating-point formatting android

2
推荐指数
1
解决办法
1万
查看次数