所以,基本上我有这个算法使用算术编码对单词进行编码。具有百分比的矩阵(String [] [] tabelaProbs和单词(String palavra)如下:
矩阵:
$( document ).ready(function(){
$(".menu-click").click(function(){
$(".hs_cos_wrapper_type_menu").slideToggle(600);
});
});
词语:
String tabelaProbs[][] = {{"A", "E", "I", "O", "U", "!"},{"0.2", "0.3", "0.1", "0.2", "0.1", "0.1"}};
事情是,它给了我错误的结果,因为一些与双打的总和给出了错误的结果,这也影响了最终的结果。
最终结果(credencialCodificada)预计为:0.23354
有人可以帮忙吗?
String palavra = "EAII!"; (in lower case: " e a i i ! ")
答案 0 :(得分:0)
问题是双打的准确度低于其总大小。因此3.0000004精确到4个小数点,但它超过4个小数点。
这也是为什么你应该避免比较或分组双打。
这是一个谈论类似的链接: how to fix double precision issue in java
答案 1 :(得分:0)
例如,如果你加0.1 + 0.2,结果不会是0.3,而是像0.30000004。它似乎很小但会影响最终结果
如果你想要任意精度浮点值,我建议你使用BigDecimal,这是java.math中的一个类。关于它的更多信息here()