在Java中,我正在使用BigDecimal该类,我的部分代码要求我从中提取小数部分. BigDecimal似乎没有任何内置的方法来帮助我获得小数点后的数字BigDecimal.
例如:
BigDecimal bd = new BigDecimal("23452.4523434");
Run Code Online (Sandbox Code Playgroud)
我想4523434从上面提到的数字中提取出来.最好的方法是什么?
如果我正在使用a double,并将其转换为a float,这是如何工作的?该值是否被截断以便它适合浮点数?或者价值得到不同的结果?很抱歉,如果这听起来有点补救,但我试图把握的概念float和double转换.
我正在制作一个程序,生成用于VHDL测试平台的测试向量.测试平台主要测试一块充当单精度浮点加法器的硬件,因此矢量符合IEEE 754标准.
无论如何,我目前的生成计划是将浮点值转换为BigDecimal,执行必要的算术,然后转换回浮点数.这有危险吗?是否会丢失精度,导致测试向量中的结果可能不准确?我想转换成BigDecimal,所以我可以避免舍入问题.
这会截断结果吗?
BigDecimal repA = new BigDecimal(Float.toString(A));
BigDecimal repB = new BigDecimal(Float.toString(B));
BigDecimal repResult = repA.add(repB);
float result = repResult.floatValue();
Run Code Online (Sandbox Code Playgroud)
其中A和B是浮点数.
下面是我正在尝试做的快速概述.我想从一个方法调用将记录推送到数据库中的两个不同的表.如果有任何失败,我希望一切都回滚.因此,如果insertIntoB失败,我希望任何可以提交的内容insertIntoA被回滚.
public class Service {
MyDAO dao;
public void insertRecords(List<Record> records){
for (Record record : records){
insertIntoAAndB(record);
}
}
@Transactional (rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public void insertIntoAAndB(Record record){
insertIntoA(record);
insertIntoB(record);
}
@Transactional(propagation = Propagation.REQUIRED)
public void insertIntoA(Record record){
dao.insertIntoA(record);
}
@Transactional(propagation = Propagation.REQUIRED)
public void insertIntoB(Record record){
dao.insertIntoB(record);
}
public void setMyDAO(final MyDAO dao) {
this.dao = dao;
}
}
Run Code Online (Sandbox Code Playgroud)
MyDAO dao使用mybatis映射到数据库的接口在哪里,并使用Spring注入设置.
现在如果insertIntoB失败,insertIntoA仍然会将所有内容都推送到数据库.我该如何纠正这种行为?
编辑:
我修改了这个类,以便更准确地描述我想要实现的目标.如果我运行insertIntoAAndB直接,回滚工作,如果有任何问题,但如果我叫insertIntoAAndB从 …
要使用Notepad ++ for Java,我创建了一个批处理文件来编译并运行该文件:
@ECHO OFF
C:\Program Files\Java\jdk1.7.0_17\bin\javac.exe %1
C:\Program Files\Java\jdk1.7.0_17\bin\java.exe %1
echo.
PAUSE
@ECHO ON
Run Code Online (Sandbox Code Playgroud)
然后运行它,在Notepad ++'运行'提示符(F5)中,我输入:C:\Program Files\Java\java.bat "$(FULL_CURRENT_PATH)".所有文件路径都是正确的,但是当我按"运行"时没有任何反应.我怎样才能解决这个问题?谢谢!
java ×5
bigdecimal ×2
batch-file ×1
double ×1
ieee-754 ×1
notepad++ ×1
spring ×1
transactions ×1